我正在尝试创建一个遵循此过程的书签:
- 在任意页面上,点击小书签
- 加载特定页面。
- 触发输入按钮,导致页面重新加载
- 重新加载后;打开一个新页面;在本例中是社交媒体页面。
这是我到目前为止所写的内容:
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:更新了流程。
最佳答案
如果页面重新加载,当前在该页面上运行的任何代码(包括小书签中的代码)都会结束并删除。传统上,小书签代码在页面加载并且用户再次单击它后停止工作。
据我所知,有三种解决方法。
A.) 更改加载页面的过程以改为使用 AJAX。
B.) 更改加载页面的过程以打开一个新窗口,然后使用 JavaScript 操作新窗口。
C.) 在触发页面加载之前,打开一个新的子窗口并向其中插入代码。然后,即使父窗口重新加载,该子窗口中的代码也可以监视其父窗口并对父窗口执行操作。
关于JavaScript 书签;单击按钮,重新加载页面,然后打开页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16703056/