簡體   English   中英

在Gmail或Facebook等網站上使用jQuery

[英]Using jQuery on sites like Gmail or Facebook

考慮到用戶名和密碼,我正在嘗試自動登錄用戶訪問網站。 要做到這一點,我正在使用Chrome擴展程序,其中每個頁面都會加載我的內容腳本,該腳本將嘗試查找用戶名和密碼框的位置,然后提交。

內容腳本加載jQuery並找到我沿着這些行做的事情:

$("input[type=password]") OR $(".password") OR $("#password")

這通常有效但在Facebook或Gmail等網站上失敗(即使它不應該)。 我懷疑這是因為他們已經在使用一些不完全相同的jQuery內部版本。

我該如何解決? 也許改變我加載到其他東西的jQuery的美元符號會解決這個問題,因為它不會與jQuery的內部版本沖突。 那可能嗎?

jQuery.noConflict()

var $j = jQuery.noConflict();
// Use jQuery via $j(...)
$j(document).ready(function(){
   $j("div").hide();
});

請訪問http://code.google.com/chrome/extensions/content_scripts.html#execution-environment

隔離世界允許每個內容腳本對其JavaScript環境進行更改,而不必擔心與頁面或其他內容腳本沖突。 例如,內容腳本可以包含JQuery v1,頁面可以包含JQuery v2,它們不會相互沖突。

我通過內容腳本在gmail和yahoo登錄頁面上使用了JQuery,沒有任何問題。 在gmail中,密碼id是“Passwd”。 所以, $("#Passwd")應該有效。 不知道為什么$("input[type=password]")不起作用。 它也應該工作。

快速瀏覽Facebook的主要(縮小)腳本似乎表明他們在內部使用jQuery。 至少在腳本中有一個名為'$'的函數,所以,使用不同的名稱為您的特定jQuery對象是一個好主意。 它還將在未來防止這種問題。

Jasie的帖子展示了如何更改jQuery變量。

在jQuery 1.5中,您可以使用新的sub()函數。

$$ = jQuery.sub();
$$("input[type=password]") ..... your code here ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM