有什么方法可以在单击按钮时调用 IIFE 函数吗?
Is there any way to call IIFE function on button click?
在 CRM 的脚本标签中有一个生成的 IIFE 函数,我需要在单击按钮时调用这个函数,有什么办法可以做到这一点吗?
<script data-b24-form="click/18/3h30a2" data-skip-moving="true">
(function(w,d,u){
var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/180000|0);
var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
})(window,document,'https://');
</script>
不,如果该代码是自动生成的并且您无法更改它,则不能。
该函数永远不会保存在任何地方,它只是 运行 一次然后被丢弃。由于它从未保存在任何地方,因此您无法调用它。
如果您可以更改代码,那么您当然可以保存该函数并在您的点击处理程序中使用它:
<script data-b24-form="click/18/3h30a2" data-skip-moving="true">
// Create the function without calling it, store it in `theFunction`
var theFunction = function(w,d,u){
var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/180000|0);
var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
}.bind(window, window,document,'https://');
theFunction(); // The initial call
// In your click handler, call `theFunction`.
</script>
在 CRM 的脚本标签中有一个生成的 IIFE 函数,我需要在单击按钮时调用这个函数,有什么办法可以做到这一点吗?
<script data-b24-form="click/18/3h30a2" data-skip-moving="true">
(function(w,d,u){
var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/180000|0);
var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
})(window,document,'https://');
</script>
不,如果该代码是自动生成的并且您无法更改它,则不能。
该函数永远不会保存在任何地方,它只是 运行 一次然后被丢弃。由于它从未保存在任何地方,因此您无法调用它。
如果您可以更改代码,那么您当然可以保存该函数并在您的点击处理程序中使用它:
<script data-b24-form="click/18/3h30a2" data-skip-moving="true">
// Create the function without calling it, store it in `theFunction`
var theFunction = function(w,d,u){
var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/180000|0);
var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
}.bind(window, window,document,'https://');
theFunction(); // The initial call
// In your click handler, call `theFunction`.
</script>