我在使用JQuery在我的上下文腳本中有一個令人費解的問題。我試圖在Facebook上運行一些JavaScript,並且一直收到這個錯誤「Uncaught TypeError:Object [object Object] has no method'text'」。Chrome擴展,JQuery錯誤「未捕獲TypeError:對象[對象對象]沒有方法'文本'」
在我的manifest.json我的上下文腳本聲明如下:
"content_scripts": [
{
"matches": ["https://*.facebook.com/*"],
"js": ["jquery.js", "misc.js", "facebook.js"],
"all_frames": true,
"run_at": "document_end"
},
//.... there are other pages that are get injected with contexts scrips here as well that aren't having this same issue.
]
我使用jQuery V1.7.1,misc.js有this function就象這樣:
function findString(search, element) {
element = (typeof element === "undefined") ? "td" : element;
var x = $(element).filter(function() {
return new RegExp('^\\s*' + search + '\\s*$').test($(this).text());
});
return x;
}
從一個我以前的問題,和facebook.js有兩個不同的編碼嘗試,第一個只是普通的JQuery:
var name = $("a._8_2"); //I did check, and on all my friend's profiles the class "_8_2" appears to be unique every time.
if (name.length){
var nmTxt = name.text();
name.text("chupacabra");
}
這是企圖針對Facebook的個人資料頁,其結構像這樣的名字:
<div class="_6-e">
<h2 class="_6-f">
<a class="_8_2" href="https://www.facebook.com/profileurlhere">FirstName LastName</a>
</h2>
</div>
這沒有工作,我var name = $("div._6-3");
了我提到的錯誤累發現它具有相同的結果。 我又試圖什麼,我認爲將是一個非常混亂的解決方法:
var name = findString(document.title, "a"); //this method is defined in misc.js, see link above
if (name.length){
var nmTxt = name.text();
name.text("chupacabra");
}
這仍然沒有奏效。我在var nmTxt = name.text();
上得到了同樣的錯誤,我無法弄清楚爲什麼,特別是因爲我在其他頁面上注入了非常類似於此腳本的腳本(在這個非常相同的擴展中),並且這些腳本正如預期的那樣工作。
在此先感謝大家!
你確定'findString'返回一個JQuery對象嗎?你可能只需要像'$(name).text()'一樣包裝它。 – McGarnagle
是的,我確實相當確定。它在我的其他語境中沒有問題。這就是爲什麼我更困惑= Z這裏是[我的舊問題中的功能鏈接](http://stackoverflow.com/questions/16779394/jquery-find-text-and-change-single-cell-價值),但爲了清晰起見,我將它包含在這個問題中。 –
如果你做'jQuery(「a._8_2」)'',結果相同嗎? –