javascript - jQuery:如何在运行时插入或删除 .js 文件?

标签 javascript jquery file append

我想在单击链接后添加一个 .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/

相关文章:

javascript - jquery .html 之后无法寻址 Html 元素

javascript - 使用 jQuery .ajax,但弹出窗口仍然要求输入登录名/密码

javascript - 使用 jQuery 文件上传实现所需的用户登录

python MySQL 模块类文件名

javascript - 如果数字是偶数,如何向下舍入,如果数字是奇数,如何向上舍入?

javascript - 为什么 SlideDown 是从左上角展开图像而不是整个宽度?

javascript - 按左侧值和顶部值对包含 DOM 标签和属性的数组进行排序

javascript - 在 iFrame 中显示父级返回历史记录

java - 尝试从文本文件中读取

python - 遍历一个文件