JavaScript Bookmarklet;单击按钮,重新加载页面,然后打开页面

时间:2013-05-22 23:12:36

标签: javascript bookmarklet

我正在尝试创建一个遵循此过程的书签:

  1. 从任意页面,单击书签
  2. 加载特定页面。
  3. 触发导致页面重新加载的输入按钮
  4. 重装后;打开一个新页面;在这种情况下是一个社交媒体页面。
  5. 这是我到目前为止所写的:

    if (!($ = window.jQuery)) { 
    // Inject jQuery to make life easier  
        script = document.createElement( 'script' );  
        script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';  
        script.onload=SocialCredentials;  
        document.body.appendChild(script);  
    }  
    else {  
        SocialCredentials();  
    }  
    
    function SocialCredentials(){
        $('input:submit').trigger('click'); 
        window.open('http://www.facebook.com', '_blank');
    }
    

    按钮提交点击会导致页面处理并清除用户的凭据,以便他们可以访问社交网站。

    上面的代码有效,但我想在打开新的社交媒体页面之前确保页面已完成加载。

    我是否需要添加某种wait()功能?如果我确实添加了一个wait方法,它会杀掉JavaScript并且不会打开新窗口吗?我对JavaScript很新,所以我不熟悉这些类型的机制。

    编辑:我应该注意,我没有访问或控制这个书签的页面,所以我不能改变它的流程。我想要做的是更多地帮助另一个部门作为一个快速解决方案,直到他们可以在他们的结束做出改变。

    Edit2:更新了流程。

1 个答案:

答案 0 :(得分:2)

如果页面重新加载,则当前在该页面上运行的任何代码(包括来自书签的代码)都将被终止并删除。传统上,书签小程序代码在页面加载后停止工作,用户再次点击它。

我知道有三种解决方法。

A。)将加载页面的进程更改为使用AJAX。

B。)更改加载页面的进程而不是打开一个新窗口,然后使用JavaScript来操作新窗口。

C。)在触发页面加载之前,打开一个新的子窗口并在其中插入代码。然后,该子窗口中的代码可以监视其父级,并在父级重新加载后对父级执行操作。