我想给客户一个他们可以包含在他们网站中的HTML块,这个HTML将包含一些表格和图像,以及一个将对HTML块进行操作的JavaScript。 所以我给他们HTML:
<a data-theme="1" data-srv="http://localhost:50987/" class="block1" href="http://myserver/payment/Details">outer information</a><script type="text/javascript" src="http://myserver/Scripts/checkout.js"></script>
我已经尝试在“checkout.js”中声明全局变量并检查它是否存在,停止执行相同的操作然后一次就好了,但我想停止对JS al的调用。
答案 0 :(得分:0)
Javascript在加载后运行,如果多次引用,则无法停止JS运行。它不会被多次加载,因此它再次运行的开销基本上是零。
要再次停止javascript的行为,只需将检查放在文件的顶层,将文件的其余部分放在条件中,然后写入全局变量以确保不再运行
if (window._your_unique_id === undefined) {
window._your_unique_id = true;
// the rest of your javascript
}
这将在脚本运行中没有任何意义。你仍然可以在if语句中定义你喜欢的任何东西,但是如果你在那里定义函数和变量,你可能必须明确地将它们放在window对象上,因为它们本来就是本地的(但是,这是不好的做法,无论如何都要隐式定义全局,所以如果你的代码结构合理,它应该没有任何区别。)
答案 1 :(得分:0)
只需将代码部署为模块即可。
即
(function(window){
if(window.CheckoutModule) return;
// now you're certain there's no global module loaded
var CheckoutModule = window.CheckoutModule = {};
// you can, ie, add a jQuery check here.
if('undefined' != typeof jQuery) {
// do your jQuery thing here.
}
return ;
})(window, jQuery);