从插入脚本标签调用javascript函数

时间:2018-11-16 21:33:22

标签: javascript google-chrome google-chrome-extension

我有一个要从脚本标签调用的函数

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()?

enter image description here

2 个答案:

答案 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);