我有一个代码,我需要在Objective-C代码中访问DOM对象模型。我正在尝试执行一个假设要返回内容的函数
NSString *functionScr = [NSString stringWithFormat: @"var fPreset=\"%@\";"
"var addFavorite = function() {"
" if (fPreset != '') {"
" var ft = window.document.createElement('div');"
" ft.innerHTML = decodeURIComponent(fPreset);"
" var f = ft.innerHTML;"
" var bub = encodeURIComponent(f.childNodes[1]);"
" return bub;"
" }"
" }",encodedHTML];
[context evaluateScript:functionScr];
JSValue *retVAL = [context evaluateScript:@"addFavorite();"];
执行此操作时出现错误
ReferenceError:无法找到变量:window
如何在JavascriptCore中访问窗口对象?
答案 0 :(得分:4)
这是不可能的:( JavascriptCore中没有DOM和任何其他窗口属性。 它是纯粹的JS引擎
答案 1 :(得分:1)
这对我有用
JSContext *context = [yourwebview valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
[context evaluateScript:yourfunctionScr];
JSValue *retVAL = [context evaluateScript:@"addFavorite();"];