UIWebView stringByEvaluatingJavaScriptFromString debugging

时间:2015-05-05 11:31:08

标签: javascript ios uiwebview

我试图获得一个相对简单的结果 - 在加载页面时关注textBox。我使用这段代码:

[_webView setKeyboardDisplayRequiresUserAction:NO];

NSString *javaString = [NSString stringWithFormat:@"document.getElementById('keyboard').focus()"];
NSString *result = [_webView stringByEvaluatingJavaScriptFromString:javaString];

通过我的应用中的按钮点击来调用它。此代码在测试页面上运行,但不适用于实际站点。最糟糕的是,我不知道如何调试它。

没有任何反应,结果总是空字符串。如何检查JS代码中是否存在错误?或者它无法找到对象?或者它不能专注于它?

更新

正如@subzero正确指出的那样,我忘记了问题中的实际focus()方法。现在这是正确的。

1 个答案:

答案 0 :(得分:2)

您忘记添加focus操作

document.getElementById('keyboard').focus();"

会做的伎俩

关于检查JS错误。有两种方法可以做到。

  1. 简单的一个: 添加这个(我正在使用jQuery)。它将在页面底部显示错误

        $(document).ready(function(){
    window.onerror = function(err) {
        log('window.onerror: ' + err)
    }
    var uniqueId = 1
    function log (message, data) {
            var log = document.getElementById('log')
            var el = document.createElement('div')
            el.className = 'logLine'
            el.innerHTML = uniqueId++ + '. ' + message + ':<br/>' + JSON.stringify(data)
            if (log.children.length) { log.insertBefore(el, log.children[0]) }
            else { log.appendChild(el) }
    }
    
  2. 你的HTML中的

    <div id='log'></div>
    
    1. What are some methods to debug Javascript inside of a UIWebView?