Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用外部javascript更改html脚本src_Javascript_Html - Fatal编程技术网

无法使用外部javascript更改html脚本src

无法使用外部javascript更改html脚本src,javascript,html,Javascript,Html,我已经阅读了所有我能找到的谷歌搜索结果,但这仍然不起作用。。。我所要做的就是根据单击的链接更改脚本源。源文件将由document.write返回一行或两行,如下所示: document.write(`This is content script a`); 因此,我有以下设置,一个html文件,带有两个调用changeSrc函数的链接,它应该更改源代码: 更改为a 更改为b 您不能使用重复IDaLinkaLink。你知道什么是身份证 不要使用内联JS。使业务逻辑远离(视图)模板。 使用脚本

我已经阅读了所有我能找到的谷歌搜索结果,但这仍然不起作用。。。我所要做的就是根据单击的链接更改脚本源。源文件将由document.write返回一行或两行,如下所示:

document.write(`This is content script a`);
因此,我有以下设置,一个html文件,带有两个调用changeSrc函数的链接,它应该更改源代码:


更改为a
更改为b
  • 您不能使用重复ID
    aLink
    aLink
    。你知道什么是身份证
  • 不要使用内联JS。使业务逻辑远离(视图)模板。
    使用脚本方式将侦听器分配给元素。查看
    addEventListener
  • 应该是
  • #contentScript
    是一个
    标记。为什么要在上面使用
    innerHTML=“
    ?脚本执行不在文本HTML的范围内
  • 您可以将所需的“src”存储到锚
    数据-*
    属性中
  • 由于只能更改
    标记
    “src”
    一次

    您应该动态创建一个全新的
    元素

  • 函数id(v){return document.getElementById(v);}//Helper 函数changeSrc(事件){ event.preventDefault();//而不是“return false”` //得到已经存在的一个 var contentScript=id(“contentScript”); //如果存在,请将其删除 if(!!contentScript)contentScript.parentNode.removeChild(contentScript); //创建一个新的 contentScript=document.createElement(“脚本”); //分配ID contentScript.id=“contentScript”; //从锚点的data-*属性中分配“src” contentScript.src=this.dataset.src; //最后,将新生成的“脚本”添加到正文中 document.body.appendChild(contentScript); } id(“aLink”)。添加EventListener(“单击”,更改SRC); id(“闪烁”)。添加EventListener(“单击”,更改SRC);
    试试看


    希望这有帮助

    不是100%确定发生了什么。。。您是否正在尝试写入iframe?在浏览器开发人员控制台中是否有任何错误?p、 避免使用
    文档。编写
    除非您真正需要做的事情(如使用iFrame),否则第一段代码将无法工作,除非您有支持ES6模板字符串的浏览器。检查你的报价。此外,您正在尝试设置脚本标记的
    innerHTML
    ,该标记即使有可能也不会执行您想要的操作。可能重复的不使用
    文档。编写
    它可以是一种评估形式。
    
    document.getElementById("ContentScript").src = your_script_source_here