首先,这是一个菜鸟问题,因为我对网络开发一无所知。 我正在创建一个prestashop网站,我有一个模块,显示一个带有优惠券代码的javascript弹出窗口,当有人点击另一个地方的特定链接时,我想做什么来调用相同的脚本主页面。我搜索了脚本的源代码,我认为这是一个:
<script>
var ju_num=(typeof ju_num === 'undefined') ? '58D7493F-E32E-4ADF-AB9B-9DE26502404C' : ju_num;var asset_host='//d2j3qa5nc37287.cloudfront.net/';
(
function() {
setTimeout(
function(){
var s=document.createElement('script');
s.type='text/javascript';
s.async=true;
s.src=asset_host+'coupon_code1.js';
var x=document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s,x);},500
)
}
)()
</script>
如何在点击链接上调用此脚本?
先谢谢。
编辑:
通过回答帮助,我创建了一个包含以下内容的javascript文件:
function show_coupon() {
var a = document.getElementById("my_coupon");
a.onclick = function(){
var ju_num=(typeof ju_num === 'undefined') ? '58D7493F-E32E-4ADF-AB9B-9DE26502404C' : ju_num;
var asset_host='//d2j3qa5nc37287.cloudfront.net/';
var s=document.createElement('script');
s.type='text/javascript';
s.async=true;
s.src=asset_host+'coupon_code1.js';
var x=document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s,x);
}
return false;
}
然后我在我的索引中加载了javascript文件,如下所示:
<script type="text/javascript" src="/js/coupon.js"></script>
最后我改变了我的链接:
<a id="my_coupon" title="" href="javascript:show_coupon()"></a>
但不幸的是,当我点击我的链接时没有任何反应。
编辑2:
我理解错误,这个脚本只是加载coupon_code1.js中包含的函数,只需要在链接中调用正确的函数。 问题解决了。
答案 0 :(得分:0)
现在的代码不能从其他地方调用,因为变量声明在全局范围内,而另一个代码包含在一个自执行的匿名函数中,该函数没有存储在任何地方的引用。您可以访问全局变量,但无法访问该函数(初始执行后)。
在其他地方调用它的最简单方法是将它包装在一个函数声明中,如下所示:
function popup(){
// code here
}
可以从任何地方调用它,例如从链接中调用它:
// use this before the </body> or wrap in a window.onload handler
document.getElementById("yourlinkid").onclick = popup;