3

摘要:在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 中得到修复,但我没有看到。

4

0 回答 0