我试图获得一个相对简单的结果 - 在加载页面时关注textBox。我使用这段代码:
[_webView setKeyboardDisplayRequiresUserAction:NO];
NSString *javaString = [NSString stringWithFormat:@"document.getElementById('keyboard').focus()"];
NSString *result = [_webView stringByEvaluatingJavaScriptFromString:javaString];
通过我的应用中的按钮点击来调用它。此代码在测试页面上运行,但不适用于实际站点。最糟糕的是,我不知道如何调试它。
没有任何反应,结果总是空字符串。如何检查JS代码中是否存在错误?或者它无法找到对象?或者它不能专注于它?
更新
正如@subzero正确指出的那样,我忘记了问题中的实际focus()方法。现在这是正确的。
答案 0 :(得分:2)
您忘记添加focus
操作
document.getElementById('keyboard').focus();"
会做的伎俩
关于检查JS错误。有两种方法可以做到。
简单的一个: 添加这个(我正在使用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) }
}
:
<div id='log'></div>