2013-04-23 68 views
2

我正在开发一个应用程序,其中一个小部件具有一个按钮,通过启动API启动另外两个按钮。该API完美工作,但我无法让调用函数正常工作。当我刚刚宣布API时,使用:如何在点击到另一个元素时插入新的脚本元素

<script src="js/global.js"></script> 

它工作正常,但在页面打开后立即启动。我需要它启动按钮点击代替。

我有以下代码:

<a href='' id='mylink'>click me</a> 

<script type="text/javascript"> 
var myLink = document.getElementById('mylink'); 
myLink.onclick = function(){ 
var script = document.createElement("script"); 
script.type = "text/javascript"; 
script.src = "js/global.js."; 
return false; 
alert('ping'); 
} 

我设置的警报,看看那里的过程中停止工作。 “返回”之前的一切似乎都在运行。我已经试过这两个返回true和返回false,并没有区别。

+1

这不是正确的做法。除此之外,您应该更改“global.js”中的代码,以便将要采取的操作封装在要从“click”事件处理程序调用的函数中。 – Pointy 2013-04-23 17:55:58

回答

3

你需要插入脚本,试图将其追加到头上:

document.getElementsByTagName('head')[0].appendChild(script); 

所以,你可以做这样的事情:

<script type="text/javascript"> 
var myLink = document.getElementById('mylink'); 

myLink.onclick = function(){ 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src = "js/global.js."; 
    document.getElementsByTagName('head')[0].appendChild(script); 
} 

</script> 

另外在HTML尝试使用除了锚之外,别的东西都会尝试向您发送一些其他内容,下一个代码看起来像是一个锚点,但是是一个跨度:

<span style="cursor:pointer; text-decoration:underline" id='mylink'>click me</span> 
+0

就跨度而言,我决定使用带有按钮的窗体来代替。我认为这对于事件会更加可行。 我刚刚复制了我试图运行的功能,并使其参与onclick。 – Nicholas 2013-04-23 19:57:37

+0

不错,请确保将onsubmit =“return false”添加到您的表单:) – multimediaxp 2013-04-23 20:45:32

2

return终止函数的执行。

您没有将script元素添加到文档中。

document.body.appendChild(script); 
相关问题