在cocoa webview中调用网页的Javascript功能

时间:2011-04-25 23:41:28

标签: javascript objective-c cocoa webview

首先,我是objective-c和cocoa的完全新手。我找到了与此相关的资源,但没有一个显示我想要的东西,我似乎无法让其他人为我工作。我需要的是一个非常愚蠢的例子,其中一个窗口包含一个按钮和一个webview,它有一个带有javascript函数的HTML页面,它带有一个参数(字符串或其他东西),并通过document.write吐出。 (我知道javascript)。

然后,当您单击webview外部的按钮时,它将调用javascript函数,并且webview将在document.write调用中说出一些内容。如果有人可以把这样一个快速的例子放在一起,我真的很感激它!

感谢。

5 个答案:

答案 0 :(得分:16)

您可以使用stringByEvaluatingJavaScriptFromString:在网络视图中调用javascript。

[ webView stringByEvaluatingJavaScriptFromString: @"myJavascriptFunction()" ];

这不是您所要求的完整示例,但完整的应用程序示例有点超出了StackOverflow的适用范围。

答案 1 :(得分:7)

如果您只想调用Javascript函数,可以这样做:

WebScriptObject *script = [_webView windowScriptObject];
[script callWebScriptMethod:@"jsFunctionWithText" withArguments:@[@"Some text"]];

在您的HTML页面中,您需要以下内容:

<script>
function jsFunctionWithText(text)
{
    document.write(text);
}
</script>

答案 2 :(得分:4)

以前的解决方案都不适合我。但是,我发现this method in the Apple Developer documentation允许我成功地在我的webView中执行JS代码。

这是一个在XCode 4.6.1(OS X 10.8.3)中适用于我的示例:

[[webView windowScriptObject] evaluateWebScript:@"document.write('derp')"];

答案 3 :(得分:2)

要让WebView正常工作,请参阅Lost Decade Games的这个精彩教程:

How to embed HTML5 into a native Mac OSX app

答案 4 :(得分:0)

你应该尝试在这个问题上看到我的答案 - Displaying HTML in iPhone app

然后你可以使用javascript作为普通的html标准,将它们添加到你的XCode项目的文件中。