2014-05-19 91 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