【问题标题】:Help Using Javascript Code in a UIWebView帮助在 UIWebView 中使用 Javascript 代码
【发布时间】:2011-06-02 21:08:12
【问题描述】:

我想在 webView 中运行以下代码,以便内容可编辑:

javascript: document.body.contentEditable ='true'; document.designMode='on'; void 0

到目前为止,我已经尝试过:

- (void)webViewDidFinishLoad:(UIWebView *)webViews  
{    
    NSString *string = @"javascript: document.body.contentEditable ='true'; document.designMode='on'; void 0";
    [webView stringByEvaluatingJavaScriptFromString:string];
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:string]]];
    NSLog(@"finished load");
}

如果你能告诉我如何让它工作,那就太好了。

【问题讨论】:

    标签: javascript iphone cocoa-touch uiwebview webkit


    【解决方案1】:

    我喜欢用 JavaScript 封装我的 JavaScript 调用。我的意思是,如果要在 JavaScript 中运行多行,则将其包装在一个函数中并仅调用该函数。这将逻辑清晰地分离出来,让您在 Safari 中严格测试事物,而无需围绕它构建 iPhone 应用程序。

    另外,我同意 Evan 关于摆脱 [webView loadRequest: 的说法。

    编辑:总结一下,我的意思是:

    function foo() { document.body.contentEditable ='true'; document.designMode='on'; }
    

    然后在您从 iOS 调用时调用“foo”。

    【讨论】:

    • 谢谢.. 还有一件事我怎么称呼它,我会这样说:[webView stringByEvaluatingJavascriptFromString:"function foo() { document.body.contentEditable ='true'; document.设计模式='开'; }"]; [webView stringByEvaluatingJavascriptFromString:foo];
    • 您将拥有我在您的 HTML 文件中编写的功能。这样,您可以测试您的代码在浏览器中运行,而不是在应用程序中运行,并且当您确定它运行时,您可以让 iPhone 调用它。您可以通过以下方式在 iOS 中调用它:[webView stringByEvaluatingJavascriptFromString:@"foo()"]
    • 哦,我没有使用 html 文件
    • 哦...所以你想在你在UIWebView 中加载的任何 HTML 上调用它,嗯,不一定是你自己创建的东西。我很抱歉。 :)
    【解决方案2】:

    删除 JavaScript: 前缀。该方法已经知道您将评估 JavaScript,因此不需要冗余。

    另外,不要在最后发送该请求。使用该方法进行评估将在当前页面上执行它。

    【讨论】:

    • 我试过了,但还是不行。感谢您的快速回答
    • 我编辑了我的答案几次。您是否完成了上述所有任务?
    • 是的,我完成了所有任务
    • 嘿,这也行不通。该页面目前仍不可编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多