2011-09-02 203 views
0

我试图执行链接(<a>)的onclick()事件,但它不会将访问者带到任何地方,它会执行JavaScript代码。但是,考虑到内容脚本无法访问它们运行的​​网页上的脚本,我该如何执行代码?应该执行的代码使用在网页中声明的自定义函数。从内容脚本访问网页脚本

+0

为什么你不能把你需要在外部文件访问的JavaScript? – Remi

+0

这不是我的网页,我不喜欢在我的文件中携带这样的代码。 – Bogdacutu

回答

0

约(使用jQuery)什么:

假设脚本的网页内包含了函数“MYFUNC”要能够执行。

var script = $("#webscript");(或任何其他方式来获得包含代码的脚本标签)

var myfunc = null; // declare the function-name (perhaps even not necessary) 
eval(script.html()); // where myfunc is declared and assigned to your myfunc variable 

现在尝试使用功能:

myfunc(); 

EDIT2: 你可能还'insert' the code again

var copyScript = document.createElement('script'); 
copyScript.type = 'text/javascript'; 
copyScript.text = script.html(); 
document.head.appendChild(copyScript); 
+0

我已经试着用'onclick'中的代码来做'eval()':它不会工作,因为没有声明所需的函数。 – Bogdacutu

+0

这就是为什么你需要声明它,使用包含实际代码复制为文本使用.html() – Remi

+0

的字符串文字哦,似乎我误解了它。但是,如果页面是动态的,我怎么能声明代码?它应该可以在任何页面上工作,而不需要在我身边修改。 – Bogdacutu