我正在开发Chrome扩展程序,我想启用文本选择。当我在chrome控制台中执行此代码时,我能够启用文本。
document.onselectstart=new Function ("return true");
当我将代码放在文档就绪事件上时,没有任何反应。
$(document).ready(function(e){
document.onselectstart=new Function ("return true");
});
我应该在哪里放置这行代码才能使其正常工作?
答案 0 :(得分:3)
我认为您的问题是隐式使用eval
:您正在使用字符串创建函数。
此does not work with the default Content Security Policy用于扩展程序,但在控制台中有效,因为这些限制不适用。
虽然您可以使用unsafe-eval
覆盖CSP,但请尝试使用匿名函数:
$(document).ready(function(e){
document.onselectstart = function(){return true;};
});
答案 1 :(得分:0)
最后我弄清楚,事件没有被触发(我不知道为什么)
通过动态添加脚本,它可以正常工作
var script = document.createElement('script');
script.type='text/javascript';
script.innerHTML = "document.onselectstart = function(){return true;};";
var body = document.getElementsByTagName('body')[0];
body.appendChild(script);