2014-05-19 52 views
0

我想围绕构建一个简单的Chrome扩展来替换网页上某个标记的属性。使用jQuery替换页面上的标记元素属性

该网站有以下代码:

网页不可选择上
<body ondragstart="return false;" onselectstart="return false;"> 

从而使文本。我试图使文本可选。

我想这个代码在我的script.js:

$(document).ready(function() {   
    $('body').live('selectstart dragstart', function (evt) { 
     evt.allowDefault(); 
     return true; 
    }); 
}); 

和:

$(document).ready(function(){    
    var bd = document.getElementById('body'); 
    bd.addEventListener('selectstart', start, true); 
    bd.addEventListener('dragstart', start, true); 
}); 

我的清单如下:

{ 
    "browser_action": { 
     "default_icon": "chav.jpg" 
    }, 
    "content_scripts": [ { 
     "js": [ "jquery.js", "content_script.js" ], 
     "matches": [ "http://www.chavaramatrimony.com/*" ] 
    } ], 
    "description": "Lets you select text", 
    "icons": { 
     "128": "chav.jpg" 
    }, 

    "manifest_version": 2, 
    "name": "ChavaraMatrimony Unlocker", 
    "update_url": "https://clients2.google.com/service/update2/crx", 
    "version": "1.1" 
} 

他们都不似乎工作。控制台显示一个错误:“Uncaught TypeError:undefined不是函数”。

我会很高兴为我的一些帮助做错了这件事。

+0

可能不包括jQuery作为你自己的代码之前的内容脚本?你应该在你的问题中包含你的manifest.json。 – rsanchez

回答

1

我认为你的问题的根源在于你的代码运行在isolated context,它不能访问也不能覆盖页面上下文的处理程序。

看到这个答案的injecting your code into the page's context

另请注意,您可能不应该添加另一个侦听器,而是要清除现有的侦听器。

+0

谢谢。这听起来合乎逻辑。 – Droidzone