[英]Using jQuery on sites like Gmail or Facebook
考虑到用户名和密码,我正在尝试自动登录用户访问网站。 要做到这一点,我正在使用Chrome扩展程序,其中每个页面都会加载我的内容脚本,该脚本将尝试查找用户名和密码框的位置,然后提交。
内容脚本加载jQuery并找到我沿着这些行做的事情:
$("input[type=password]") OR $(".password") OR $("#password")
这通常有效但在Facebook或Gmail等网站上失败(即使它不应该)。 我怀疑这是因为他们已经在使用一些不完全相同的jQuery内部版本。
我该如何解决? 也许改变我加载到其他东西的jQuery的美元符号会解决这个问题,因为它不会与jQuery的内部版本冲突。 那可能吗?
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.