javascript - 书签中的 jQuery 就绪

标签 javascript jquery bookmarklet

您好,我正在尝试创建一个书签,它会打开一个网页,在该网页上找到一个下载链接,然后关闭该网页。除非有更好的方法,否则我将打开页面,调用 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/

相关文章:

javascript - Unchecked runtime.lastError : Cannot access contents of url "". 扩展 list 必须请求访问此主机的权限。在 list 3

javascript - CSS:添加文本溢出属性后,绝对定位的文本不会在 div 中居中

javascript - 根据另一个字段选择过滤选项集

javascript - 用于编辑当前 URL 的书签

javascript - 将音频秒时间转换为分秒格式

javascript - 带组的谷歌柱形图

javascript - XML/JavaScript : assigning sequential numbers to an xml tree based on node hierarchy

javascript - 电话休眠后长轮询 jQuery.ajax() 无法回调?

javascript - 从 Chrome 书签更改文本输入

javascript - 为什么这个小书签代码说 jQuery 没有定义,即使包含了 jQuery?