您好,我正在尝试创建一个书签,它会打开一个网页,在该网页上找到一个下载链接,然后关闭该网页。除非有更好的方法,否则我将打开页面,调用 ready(我认为这是无效的部分),然后搜索下载链接。导入jQuery的代码取自:http://coding.smashingmagazine.com/2010/05/23/make-your-own-bookmarklets-with-jquery/
javascript:(function() {
var v = "1.3.2";
if (window.jQuery === undefined || window.jQuery.fn.jquery < v) {
var done = false;
var script = document.createElement("script");
script.src = "http://ajax.googleapis.com/ajax/libs/jquery/" + v + "/jquery.min.js";
script.onload = script.onreadystatechange = function(){
if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
done = true;
initMyBookmarklet();
}
};
document.getElementsByTagName("head")[0].appendChild(script);
}
else {
initMyBookmarklet();
}
function initMyBookmarklet() {
var ytm = window.open('http://example.com');
jQuery(document).ready(function() {
var div = ytm.document.getElementById("dl_link");
var links = ytm.document.getElementsByTagName('a');
var dl = links[1];
window.open(dl);});
ytm.close();
}
})();
提前致谢!
最佳答案
function initMyBookmarklet() {
var ytm = window.open('http://example.com');
jQuery(document).ready(function() {
最接近您可能想要的是:jQuery(ytm.document).ready(function() {
但是,这可能也行不通,因为您甚至无法确定该行执行时文档是否存在。如何解决这个问题就像一个全新的问题。
第二个、第三个和第四个答案在这里是相关的:jQuery/JavaScript: accessing contents of an iframe
var div = ytm.document.getElementById("dl_link");
var links = ytm.document.getElementsByTagName('a');
var dl = links[1];
如果您正在使用 jquery,您不妨做这样的事情 div = $('#dl_link', ytm.document); dl = $('a', ytm.document)[1];
window.open(dl);});
应该是 window.open(dl.href)
ytm.close();
}
但是 如果此小书签未在与您打算打开的窗口相同的域上运行,则同源策略会带来更大的问题。在 Google 和 Stackoverflow 中搜索 same original policy bookmarklet
以了解更多信息。此外,第一个答案与此相关:jQuery/JavaScript: accessing contents of an iframe
关于javascript - 书签中的 jQuery 就绪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15885389/