javascript - 使用 jQuery 替换页面上的标签元素属性

标签 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);
});

我的 list 如下:

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

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

如果我在这方面做错了什么,我会很高兴得到一些帮助。

最佳答案

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

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

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

关于javascript - 使用 jQuery 替换页面上的标签元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23741218/

相关文章:

javascript - 多行文本到剪贴板

javascript - 如何将 ReactDom 添加到 Meteor 中的全局命名空间

javascript - 使用从 gulp-iconfont 生成的 css,字体符号无法正确显示

javascript - 只希望该功能在屏幕尺寸为一定宽度时起作用

javascript - db.js - 向 IndexedDB 添加记录时遇到问题

javascript - $.each() 中的记录顺序

javascript - 忽略jquery中的某些变量

javascript - 检查页面上当前是否显示 DIV

javascript - 为什么另一个函数看不到我的全局变量?

google-chrome - Chrome 扩展 API : Add URL to 3rd Party cookies exception list