当“this._try == 1”时重定向不起作用?
这是完整的 JS,但是它不再在单击时检查 try == 1,而是在窗口关闭时自动检查。
function ouvre(fichier) {
ff=window.open(fichier,"popup","width=600px,height=300px,left=50%,top=50%")
//this._try = 1;
setTimeout('this._try = 1;', 4000);
}
function playMovie(_try) {
if (this._try == 1) { playsavideo(); }
else { alert('You must share to unlock.'); }
}
function playsavideo(type) {
{
window.location = "http://google.com"
}
}
窗口被这个调用...
<a href="#" onClick="ouvre('https://twitter.com/share?url=https%3A%2F%2Fdev.twitter.com%2Fpages%2Ftweet-button');return false">Test</a>
最佳答案
您尝试使用this
作为值/全局变量的载体。
但 this
是一个“相对”变量,它始终与其所在对象的实例相关。
在您的代码中没有实例。即使是这样,函数内的 this
也会
引用一件事,而函数之外的任何其他 this
很可能会引用另一件事。
虽然全局变量不是好的做法。试试这个:
var i_am_a_global_var = false;
function ouvre(fichier) {
ff=window.open(fichier,"popup","width=600px,height=300px,left=50%,top=50%");
setTimeout(function(){window.i_am_a_global_var=true;bobo();}, 4000);
}
function bobo(){
if (window.i_am_a_global_var) {
window.location.href = "http://www.google.com/"
}
}
- 定义全局变量
- 当超时发生时,它将回调一个闭包 (
function(){...}
),该闭包将调用bobo
函数。 - 如果全局变量为 true,bobo 函数就是重定向发生的地方。
您这样做可能是因为其他逻辑可能会改变您的 this._try
但如果您想做的只是在 x 秒后重定向,那么简短的版本将是:
window.open(fichier,"popup","width=600px,height=300px,left=50%,top=50%");
setTimeout('window.location.href = "http://www.google.com/"', 4000);
关于javascript - 重定向 If - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20590472/