摘要:在javascript确认对话框上单击“确定”按钮时,它不会执行其部分中的代码。
重现步骤:
window.location = 'myApp://openMyAppUrl' ;
timeoutIpad = setTimeout( function(){
var timeoutFired = new Date();
var timeElapsed = timeoutFired.getTime() - start.getTime();
if( timeElapsed < 3000){
if( confirm("You need app to continue.")){
if(timeElapsed < 10000){
var x = 1+1;
window.location="http://google.com/getMyApp";
}
}
}
}, 200);
//Timeout values of 200, 500, 1500 were attempted but same results
重现:
1)在网页上使用上面的js代码。2) 单击第一个“确定”,然后单击来自确认对话框的“确定”。
预期结果:如果应用程序不存在,重定向到http://google.com/getMyApp应该会在 10 秒内发生。
实际结果:confirm() 对话框的真实条件的子例程未执行。在 xcode 控制台上可以看到以下内容:
11 月 5 日 09:24:06 测试-iPad MobileSafari[327]:* -UIApplication runModal:, /SourceCache/UIKit/UIKit-2903.23/UIApplication.m:9465 中的断言失败 11 月 5 日 09:24:06 测试-iPad MobileSafari[ 327] : * WebKit 在 webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:delegate 中丢弃了一个未捕获的异常:传入的视图没有窗口。
版本: 7.0.0-7.0.3 我看到报告说问题已在 7.0.3 中得到修复,但我没有看到。