我想在单击链接后添加一个 .js 文件。 .js文件是一个脚本,没有直接调用的功能,但必须在网站正文部分插入该文件。
另一种解决方案是,如果文件在页面加载时被调用并且链接的点击事件被调用,则删除 .js 文件。
我试过类似的方法,但没有任何反应:
$(".myLink").click(function(){
$.getScript("myJavascriptFile.js");
});
还有这里:
$(".myLink").click(function(){
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "app_javascript/dragscroll.js";
$(".myDiv").append(script); // or $("body").append(script);
});
最佳答案
嗯,实际上,“什么都没发生”听起来很可能太大声了。 getScript 无论如何都是异步的,因此您应该提供依赖于在加载处理程序中使用此脚本的任何代码,这实际上是第二个参数。
$.getScript('here_comes_the_script.js', function(){...//这里是代码})
您可以使用一些包装来使事情更灵活 - 通过将事件传递给加载处理程序,如下所示:
getScriptDetectable = function(src) {
getScript(src, function() {
$(document).trigger("new_script", {src: src})
});
}
但是,当然,这并不能使您免于考虑此代码是异步的这一事实。
关于删除脚本。实际上没有通用的方法可以让浏览器“看不到”代码。
你可以尝试做这样的事情:
var src = document.querySelector('script');
src.parentNode.removeChild(src);
但是这个文件中所有已经被求值的代码都已经被求值了,所以这没有什么意义。
关于javascript - jQuery:如何在运行时插入或删除 .js 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8831597/