0

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

  1. 在任何页面上,单击书签
  2. 加载特定页面。
  3. 触发导致页面重新加载的输入按钮
  4. 一旦重新加载;打开一个新页面;在这种情况下是社交媒体页面。

这是我到目前为止所写的:

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()功能吗?如果我确实添加了一个等待方法,它会杀死 JavaScript 并且不打开新窗口吗?我对 JavaScript 相当陌生,所以我不熟悉这些类型的机制。

编辑:我应该注意,我无权访问或控制此小书签将处理的页面,因此我无法更改它的流程。我正在尝试做的更多是帮助另一个部门作为快速解决方案,直到他们可以最终做出改变。

Edit2:更新了流程。

4

1 回答 1

2

如果页面重新加载,则当前在该页面上运行的任何代码(包括小书签中的代码)都会结束并删除。传统上,小书签代码在页面加载并且用户再次单击它后停止工作。

我知道三种解决方法。

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

B.) 将加载页面的过程更改为打开一个新窗口,然后使用 JavaScript 操作新窗口。

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

于 2013-05-23T04:48:47.030 回答