我只是想将一些动态 javascript 添加到我的网络浏览器的内容中。 我的场景是,我想显示一个广告,该广告映射到将由用户从电话屏幕输入的 zoneID。 更准确地说,我只想添加以下 javascript
<script src="http://rq.vserv.mobi/delivery/js.php?zoneid=d03e63db&vr=S-JS-1.0.0"></script> </div>
其中 zoneid 将根据用户输入动态变化。
我搜索了很多这个,因为我以前从未使用过 JS,我得到了这篇文章 -
http://matthiasshapiro.com/2012/11/26/windows-phone-html-5-app-basics/
我尝试了两种实现方式 第一个是我试图导航到硬编码的 HTML 内容,包括脚本-
webBrowser.NavigateToString(string.Format("<html><head><meta name=\"viewport\" content=\"width=device-width,height=device-height,user-scalable=no\"><script type=\"text/javascript\" src=\"http://rq.vserv.mobi/delivery/js.php?zoneid={0}&vr=S-JS-1.0.0\"></script></head><body></body></html>",p_zoneID));
第二个是有一个本地 HTML 页面,在 web 浏览器的 Loaded 事件上加载它,然后将脚本注入(inject)其中 -
webBrowser.InvokeScript("eval",
new string[] { "document.getElementById('dynamicTitle').innerHTML = '" + javascript_tag + "';" });
在第二种情况下,当我收到广告时,这两种方式都有效,因为我正在将整个脚本映射到该广告,所以该广告是可点击的。(我使用网络浏览器的 SaveToString() 方法对其进行了检查。)
但问题是,在第一种情况下,我收到的广告不可点击,因为与之相关的脚本不存在。(在 HTML 页面的内容中)(也使用 SaveToString() 进行了检查;)
我尝试了很多,但找不到任何线索。我现在应该采取什么方法来了解为什么该广告不可点击以及为什么我没有将脚本映射到它。
如果有建议,我也可以在这两种情况下发布 HTML 内容。 谢谢提前,请帮助我去解决这个问题,因为我被困在这一点上并且需要澄清事情。
最佳答案
您可以使用 JS 将脚本附加到头部,它们将按预期运行,here is a great answer on StackOverflow通过工作示例展示它是如何完成的,它使用纯 javascript。
希望对你有帮助。
关于c# - 在 Windows Phone 8 应用程序中动态注入(inject) javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25302238/