有一种奇怪的行为。在UIWebView
中,我有一个javacript函数来检测元素的位置。这一个:
function getPosition(element){
var el = element;
var pos = [el.offsetLeft, el.offsetTop];
var parent = el.offsetParent;
if (parent != el) {
while (parent) {
pos[0] += parent.offsetLeft;
pos[1] += parent.offsetTop;
parent = parent.offsetParent;
}
}
//alert(pos);
return pos;
}
没什么特别的...但是当我这样调用函数时:
NSString *position = [browserWebView stringByEvaluatingJavaScriptFromString:@"getPosition(document.getElementById('exampleElement'));"];
我得到一个空的NSString
。当我在函数中插入一个警报(现在是取消注释)时,我在警报中得到正确的位置!!
当正确的返回值pos
出现在那里时,为什么我没有得到值并只得到一个空字符串?
答案 0 :(得分:3)
这对我来说很简单,也是一个完全神秘的东西。我不知道为什么但“stringByEvaluatingJavaScriptFromString:”喜欢javascript结果已经类似于字符串。要修复代码,只需在返回的数组中添加join()函数:
return pos.join();
这会将数组连接成一个字符串,它将作为NSString传递没问题。
我认为警报工作的原因是它不会破坏以类似方式显示数据的网站。