使用jQuery替换页面上的标记元素属性

时间:2014-05-19 15:07:51

标签: javascript jquery google-chrome-extension

我正在努力构建一个简单的Chrome扩展程序来替换网页上某个标记的属性。

该网站包含以下代码:

<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"
}

它们似乎都不起作用。控制台显示错误:“未捕获的TypeError:undefined不是函数”。

我很高兴能帮助我解决这个问题。

1 个答案:

答案 0 :(得分:1)

我认为问题的根源在于您的代码在isolated context中运行,无法访问或覆盖页面上下文的处理程序。

请参阅injecting your code into the page's context的答案。

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