我有两个可单独使用的书签 1)
javascript:(function(){window.open("http://mail.yahoo.com");})();
2)
javascript:(function(){;document.getElementsByClassName('btn-compose')[0].click()})();
(上面的代码行通过这里的bookmarklet生成器: http://ted.mielczarek.org/code/mozilla/bookmarklet.html 并且每个小书签都工作正常)
但他们在一起的时候是这样的: 的javascript:(函数(){window.open(" http://mail.yahoo.com&#34); document.getElementsByClassName(' BTN-撰写')[0]。点击()}) ();
或者像这样:
javascript:(function(){window.open("http://mail.yahoo.com");})();
javascript:(function(){;document.getElementsByClassName('btn-compose')[0].click()})();
撰写窗口无法打开。我感觉DOM还没有准备好。
但这失败了:
javascript:(function(){window.open("http://mail.yahoo.com");})();
document.onreadystatechange = function () {
if (document.readyState == "complete") {
javascript:(function(){;document.getElementsByClassName('btn-compose')[0].click()})();
}
}
答案 0 :(得分:2)
你有几个问题在继续。
window.open()
会打开一个新窗口。如果您想在该窗口上操作,则必须获取该窗口句柄,然后从该窗口获取文档。现在,您正尝试使用第二个脚本在原始窗口上操作。
由于浏览器安全限制,从一个窗口启动的脚本无法访问其他窗口中的其他域。
在我看来,您必须在Yahoo窗口打开后手动启动第二个脚本。或者,您需要使用可以访问新窗口的浏览器插件。
您似乎也试图解决可能已经解决的问题(在Yahoo邮件中打开撰写窗口)。您可以在新窗口中打开一个URL,该窗口将直接启动撰写窗口,而无需入侵窗口按下按钮。
有关将您带到Yahoo撰写窗口的URL的信息,请参阅this post。网址的一般形式为:http://compose.mail.yahoo.com/?to=TO&subject=SUBJECT&body=BODY