我有一个要从脚本标签调用的函数
function foundElement(){
console.log(' in found element')
}
var ele = document.createElement("script")
ele.textContent = "foundElement()"
document.head.appendChild(ele)
我遇到错误Uncaught ReferenceError: foundElement is not defined
。但是,当我使用控制台时,功能已定义。附件是屏幕截图。
如何通过插入脚本标签来调用foundElement()?
答案 0 :(得分:0)
function foundElement() {
console.log(' in found element')
}
var ele = document.createElement("script")
ele.textContent = "foundElement()"
document.head.appendChild(ele)
像魅力一样工作。你能描述你的实际问题吗?
答案 1 :(得分:0)
内容脚本JS和页面JS在具有不同权限的不同上下文中运行。他们唯一共享的是DOM。您可以找到更多详细信息here
如果您需要在Content-Script和页面上下文之间共享功能-您也需要将功能注入页面。
示例:
var fn = function injectedFunction(seed) { console.log(seed,Math.random());}
var ele = document.createElement("script");
ele.textContent = fn+"console.log(injectedFunction(document.location));";
document.body.appendChild(ele);