【问题标题】:Loading javascript on UIWebView在 UIWebView 上加载 javascript
【发布时间】:2015-03-18 10:57:47
【问题描述】:

我有一个javascript,只是想把它加载到我的UIWebView 上,不知道我做错了什么。 这是我的脚本:

<script type='text/javascript'>(function () { var done = false; var script = document.createElement('script'); script.async = true; script.type = 'text/javascript'; script.src = 'https://app.purechat.com/VisitorWidget/WidgetScript'; document.getElementsByTagName('HEAD').item(0).appendChild(script); script.onreadystatechange = script.onload = function (e) { if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) { var w = new PCWidget({ c: 'ea5935c8-1f44-4172-bcd7-18d6f316ad75', f: true }); done = true; } }; })();</script>

这是我的代码:

NSString *temp =@"<script type='text/javascript'>(function () { var done = false; var script = document.createElement('script'); script.async = true; script.type = 'text/javascript'; script.src = 'https://app.purechat.com/VisitorWidget/WidgetScript'; document.getElementsByTagName('HEAD').item(0).appendChild(script); script.onreadystatechange = script.onload = function (e) { if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) { var w = new PCWidget({ c: 'ea5935c8-1f44-4172-bcd7-18d6f316ad75', f: true }); done = true; } }; })();</script>";
    
[_mainWebView stringByEvaluatingJavaScriptFromString:temp];

这是我的空白webView...:(

【问题讨论】:

    标签: javascript ios uiwebview


    【解决方案1】:

    您不需要在 javascript 中包含 script 标签。 stringByEvaluatingJavaScriptFromString 尝试直接在 webview 中执行给定的 javascript 字符串。

    试试这个方法:

    NSString *temp =@"(function () { var done = false; var script = document.createElement('script'); script.async = true; script.type = 'text/javascript'; script.src = 'https://app.purechat.com/VisitorWidget/WidgetScript'; document.getElementsByTagName('HEAD').item(0).appendChild(script); script.onreadystatechange = script.onload = function (e) { if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) { var w = new PCWidget({ c: 'ea5935c8-1f44-4172-bcd7-18d6f316ad75', f: true }); done = true; } }; })();";
    

    【讨论】:

    • @AyanKhan 你在调用这个javascript之前加载了webview吗?它有内容还是空白?
    • 我正在这样做:[mainWebView stringByEvaluatingJavaScriptFromString:temp]; [self.view addSubview:mainWebView];
    • 这是javascript执行后的html dom。似乎其中一个脚本文件的 src 是错误的。检查 WidgetScript 的第 45 行 &lt;html&gt; &lt;head&gt; &lt;script async="" type="text/javascript" src="https://app.purechat.com/VisitorWidget/WidgetScript"&gt;&lt;/script&gt;&lt;script async="" type="text/javascript" src="https://app.purechat.com/VisitorWidget/WidgetVersions/ea5935c8-1f44-4172-bcd7-18d6f316ad75/_WidgetJPCB0"&gt;&lt;/script&gt;&lt;script async="" type="text/javascript" src="undefined/VisitorWidget/Widget/ea5935c8-1f44-4172-bcd7-18d6f316ad75/undefined/_WidgetJPCB1.js"&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;/body&gt; &lt;/html&gt;
    猜你喜欢
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 2012-03-27
    • 1970-01-01
    • 2011-08-09
    • 2012-11-10
    相关资源
    最近更新 更多