访问DOM对象模型JavascriptCore

时间:2015-06-06 05:43:52

标签: objective-c dom javascriptcore

我有一个代码,我需要在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中访问窗口对象?

2 个答案:

答案 0 :(得分:4)

这是不可能的:( JavascriptCore中没有DOM和任何其他窗口属性。 它是纯粹的JS引擎

答案 1 :(得分:1)

这对我有用

JSContext *context = [yourwebview valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
[context evaluateScript:yourfunctionScr];
JSValue *retVAL = [context evaluateScript:@"addFavorite();"];