【问题标题】:Call Javascript function of webpage in cocoa webview在 cocoa webview 中调用网页的 Javascript 函数
【发布时间】:2011-08-12 16:04:42
【问题描述】:

首先,我是 Objective-c 和 cocoa 的新手。我找到了与此相关的资源,但没有一个显示我想要什么,而且我似乎无法让其他人为我工作。我需要的是一个非常简单的示例,其中包含一个包含按钮的窗口和一个 web 视图,该页面具有一个带有 javascript 函数的 HTML 页面,该函数接受一个参数(字符串或其他东西),并通过document.write 将其吐出。 (我知道 javascript)。

然后,当您单击 webview 外部的按钮时,它会调用 javascript 函数,并且 webview 会从document.write 调用中说些什么。如果有人可以整理一个这样的简单示例,我将不胜感激!

谢谢。

【问题讨论】:

    标签: javascript objective-c cocoa webview


    【解决方案1】:

    如果你只是想调用一个 Javascript 函数,可以这样做:

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

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

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

    【讨论】:

      【解决方案2】:

      以前的解决方案都不适合我。但是,我发现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】:

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

        How to embed HTML5 into a native Mac OSX app.

        【讨论】:

          【解决方案4】:

          你应该尝试看看我对这个问题的回答 - Displaying HTML in iPhone app

          然后您可以通过将 javascript 添加到您的 XCode 项目文件中来将它们用作普通的 html 标准。

          【讨论】:

            【解决方案5】:

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

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

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

            【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-06-06
            • 2011-05-18
            • 2017-10-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多