【问题标题】:Execute script after page loads in javascript/jquery在 javascript/jquery 中加载页面后执行脚本
【发布时间】:2016-10-05 12:19:16
【问题描述】:

我不是此书签的原始作者,但我正在尝试改进/更新它以在页面加载后执行脚本。我想在页面加载时点击小书签,它会在最终加载时执行任务。我尝试了多种形式的 $(document).ready 和 jQuery(document).ready(function($) 无济于事。请协助。谢谢

javascript:(function(){ 
function setName(){ 
    jQuery.noConflict(); 
    jQuery("#456_linier").dblclick(); 
    jQuery("#456").val("First Name Last"); 
    jQuery("input[title='Save']").click(); 
} 

if (typeof jQuery == 'undefined') { 
    var s = document.createElement('script'); 
    s.setAttribute('src','https://code.jquery.com/jquery-3.1.1.min.js'); 
    s.setAttribute('type','text/javascript'); 
    document.getElementsByTagName('head')[0].appendChild(s); 
    } 
    setTimeout(setName, 1000); })();

【问题讨论】:

    标签: javascript jquery bookmarklet


    【解决方案1】:

    注意:“在页面加载之后”可能意味着很多东西,所以我将其解释为“在所有 html 加载之后”,认为这是一个相当可靠的解释。

    这应该会照顾你,用一点香草 Javascript:

    document.addEventListener("DOMContentLoaded", function(event) {
      console.log("Whatup Homie!!!");
    });
    

    【讨论】:

    • 我在function setName(){ 之前添加了这个,不幸的是代码仍然没有运行,直到我在页面完全加载后再次按下小书签。
    • 哟 - 在下面添加了一个补充
    【解决方案2】:

    包装函数声明不会这样做,无论如何我认为 setTimeout 会自动触发函数,如果你不这样做就像回调一样。试试这个:

    或者可能是这种策略,在加载函数本身内部使用 eventListener:

    【讨论】:

    • 我删除了原始 document.addEventListener 并添加了你放在底部的内容(并删除了最底部的 setTimeout(setName, 1000);),现在什么也没有发生,我没有得到任何控制台中的错误,我觉得很奇怪。问题中的原始代码是如何工作的,直到页面完全加载后才起作用。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2011-09-02
    • 2012-12-04
    • 2012-06-08
    • 1970-01-01
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    相关资源
    最近更新 更多