javascript - 如何注入(inject) jQuery 并在同一个书签中使用它?

标签 javascript jquery bookmarklet

我可以使用以下小书签成功地将 jQuery 注入(inject)页面:

javascript: void((function(doc) {
    if (typeof jQuery == 'undefined') {
        var script_jQuery = document.createElement('script');
        script_jQuery.setAttribute('src', 'https://code.jquery.com/jquery-latest.min.js');
        Node.prototype.appendChild.call(document.body, script_jQuery);
        console.log('jQuery included ^_^');
    } else {
        console.log('jQuery already included ...');
    }
})(document));

有没有办法在同一个书签中使用刚刚注入(inject)的 jQuery?我试着把 console.log(jQuery.toString())在追加部分之后,但它没有用。在我看来,jQuery 只能在小书签完成后才能使用。

最佳答案

使用onload新脚本元素的回调以初始化您自己的 jQuery 代码

(function(doc) {

  function doStuff() {
    console.log('jQuery version ', $.fn.jquery, ' loaded')
    $('h1').text('Updated Title').css('color', 'red');
  }

  if (typeof jQuery == 'undefined') {
    var script_jQuery = document.createElement('script');
    script_jQuery.src = 'https://code.jquery.com/jquery-latest.min.js';

    // call doStuff() after jQuery.js loads
    script_jQuery.onload = doStuff;

    doc.body.appendChild(script_jQuery);
    console.log('script_jQuery appended to body');
    
  } else {
    console.log('jQuery already included ...');
    // initialize your code using existing version
    doStuff();
  }
})(document)
<h1>Blank</h1>

关于javascript - 如何注入(inject) jQuery 并在同一个书签中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58473252/

相关文章:

jQuery AJAX - Controller 上的数据参数为空

javascript - 将字符串附加到 URL 的书签

javascript - 如何让javascript加载另一个html文件?

javascript - 如何使用 jQuery 在有换行符的文本周围添加跨度换行?

javascript - ES6 `fetch is undefined`

javascript - 从服务器的 AJAX 请求返回的数组(编码和解析的 JSON)是否具有 'results' 属性?

javascript - 如何显示智能合约中的所有事件日志?

jQuery - 具有自定义回调的函数

javascript - 如何使用 THREE.DecalGeometry 为贴花设置正确的方向

悬停在 <li> 上的 Javascript 图片