繁体   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