无法使用外部javascript更改html脚本src
我已经阅读了所有我能找到的谷歌搜索结果,但这仍然不起作用。。。我所要做的就是根据单击的链接更改脚本源。源文件将由document.write返回一行或两行,如下所示:无法使用外部javascript更改html脚本src,javascript,html,Javascript,Html,我已经阅读了所有我能找到的谷歌搜索结果,但这仍然不起作用。。。我所要做的就是根据单击的链接更改脚本源。源文件将由document.write返回一行或两行,如下所示: document.write(`This is content script a`); 因此,我有以下设置,一个html文件,带有两个调用changeSrc函数的链接,它应该更改源代码: 更改为a 更改为b 您不能使用重复IDaLinkaLink。你知道什么是身份证 不要使用内联JS。使业务逻辑远离(视图)模板。 使用脚本
document.write(`This is content script a`);
因此,我有以下设置,一个html文件,带有两个调用changeSrc函数的链接,它应该更改源代码:
更改为a
更改为b
aLink
aLink
。你知道什么是身份证使用脚本方式将侦听器分配给元素。查看
addEventListener
应该是
#contentScript
是一个
标记。为什么要在上面使用innerHTML=“
?脚本执行不在文本HTML的范围内数据-*
属性中
标记的“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