簡體   English   中英

在Windows Phone 8應用程序中動態注入javascript

[英]Dynamically injecting javascript in windows phone 8 application

我只是想在我的網絡瀏覽器的內容中添加一些動態javascript。 我的方案是,我想顯示一個廣告,該廣告映射到將由用戶從電話屏幕輸入的zoneID。 更確切地說,我只想添加以下javascript

    <script src="http://rq.vserv.mobi/delivery/js.php?zoneid=d03e63db&amp;vr=S-JS-1.0.0"></script>&nbsp;</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}&amp;vr=S-JS-1.0.0\"></script></head><body></body></html>",p_zoneID));

第二個是有一個本地HTML頁面,將它加載到webbrowser的Loaded事件上,然后將一個腳本注入其中 -

     webBrowser.InvokeScript("eval",
                new string[] { "document.getElementById('dynamicTitle').innerHTML = '" + javascript_tag + "';" });

當我獲得廣告時,這兩種方式都適用於第二種情況,因為我將整個腳本映射到該廣告時,該廣告是可點擊的。(我使用webbrowser的SaveToString()方法進行了檢查。)

但問題是,在第一種情況下,我得到的廣告不可點擊,因為與之相關的腳本不存在。(在HTML頁面的內容中)(也使用SaveToString()檢查;);

我已經嘗試了很多,但無法找到任何線索。 現在我的方法應該是知道為什么廣告不可點擊以及為什么我沒有將腳本映射到它。

如果建議,我也可以在兩種情況下發布HTML內容。 謝謝是提前,請幫我解決這個問題,因為我在這一點上陷入困​​境,需要澄清事情。

您可以使用JS將腳本附加到頭部,它們將按預期運行, 這是StackOverflow的一個很好的答案,顯示如何使用工作示例完成它並使用普通的javascript。

希望對你有所幫助。

在第一種情況下,您將在Web瀏覽器控件中注入完整的html,其中包含javascript源,但您永遠不會將其分配給“dynamicTitle”。 你在第二種情況下使用javascript的eval方法和變量“javascript_tag”中的字符串進行分配到“dynamicTitle”的innerHTML。

您也需要在第一種方法中執行相同的操作,但除了作為字符串之外,無法直接在Windows Phone中訪問html文檔。 以下是代碼:

添加對HtmlAgilityPack的引用。 請點擊此鏈接: http//www.tareqateik.com/html-agility-pack%E2%80%93windows-phone-8#.U_eAtPmSySp

//fetch the html as string
string htmlAsString = webBrowser.SaveToString();
//create an html document from the string 
HtmlDocument htmlDocument = new HtmlDocument(); 
htmlDocument.LoadHtml(htmlPage);
htmlDocument.GetElementbyId("dynamicTitle").InnerHtml = javascript_tag;

在此之后,您需要再次在webBrowser中加載已編輯的html文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM