2015-01-21 65 views
0

我使用javascript和NavigateToString()方法顯示Htmlcontent的Web瀏覽器控件。這是工作正常,除非表格標籤被添加到服務器從我得到Htmlcontent。我曾嘗試下面的代碼到目前爲止如何在windows phone 8的web瀏覽器控件中顯示htmlcontent字符串?

string notifyJS = @"<script type='text/javascript' language='javascript'> 
          window.onload = function() { 
           var links = document.getElementsByTagName('a'); 
           for(var i=0;i<links.length;i++) { 
            links[i].onclick = function() { 
             window.external.Notify(this.href); 
            } 
           } 
          } 
         </script>"; 


     var htmlContent = string.Format("<html><head>{2}</head>" + 
               "<body style=\"margin:25px 25px 75px;padding:0px;background-color:{1};\" " + 
               "{0}</body></html>", 
               _selectedTab.HTML_CONTENT, 
               _selectedTab.TAB_BG_COLOR, 
               notifyJS); 
     //var htmlContent = _selectedTab.HTML_CONTENT; 

     HtmlContentView.NavigateToString(htmlContent); 
     HtmlContentView.ScriptNotify += HtmlContentView_ScriptNotify; 
     HtmlContentView.Navigating += HtmlContentView_Navigating; 
     HtmlContentView.LoadCompleted += HtmlContentView_LoadCompleted; 
    } 

    void HtmlContentView_LoadCompleted(object sender, NavigationEventArgs e) 
    { 
     HtmlContentView.InvokeScript("execScript", new string[] { "document.onselectstart=function(){return false;};document.ondragstart=function(){return false;}" }); 

    } 

    void HtmlContentView_Navigating(object sender, NavigatingEventArgs e) 
    { 
     e.Cancel = true; 
    } 

    void HtmlContentView_ScriptNotify(object sender, NotifyEventArgs e) 
    { 
     if (!string.IsNullOrEmpty(e.Value)) 
     { 
      string href = e.Value.ToLower(); 
      if (href.StartsWith("mailto:")) 
      { 
       EmailComposeTask email = new EmailComposeTask(); 
       email.To = href.Replace("mailto:", string.Empty); 
       email.Show(); 
      } 
      else if (href.StartsWith("tel:")) 
      { 
       PhoneCallTask call = new PhoneCallTask(); 
       call.PhoneNumber = href.Replace("tel:", string.Empty); 
       call.Show(); 
      } 
      else 
      { 
       WebBrowserTask browserTask = new WebBrowserTask(); 
       browserTask.Uri = new Uri(e.Value); 
       browserTask.Show(); 

      } 
     } 
    } 

請任何人都可以說明爲什麼table標籤沒有被正確識別?我在Android中檢查了它,它工作得很好。

請任何人提出一個解決方案。

回答

0

這是一個已知的問題,WP8中的Web瀏覽器控件的NavigateToString()函數無法正常工作。請嘗試使用CSS和DIV,因爲目前沒有其他解決方案。

我希望這能回答你的問題。

+0

你可以推薦一些代碼,我可以在我的代碼中添加以實現我的要求嗎? – 2015-01-21 18:12:50

+0

我完全不知道你的上下文,所以我認爲只是建議一些代碼不會解決你的問題。我認爲如果你用另一個HTML內容代替HTML表格,那麼你的問題就可以成功解決,而這個HTML內容看起來與表格看起來差不多。嘗試將這個問題標記爲回答,如果你認爲它是這樣的話,並且如果你希望直接回答你的下一個問題,可以提出另一個問題,要求對該特定內容提供幫助。 – 2015-01-21 18:19:33

0

最後,我從這個鏈接 Solution

一個解決方案,我已經加入meta標籤按照他們的建議和偉大的工作。

var htmlContent = string.Format("<html><head>{2}<meta name='viewport' content='inital-scale=1.0,maximum-scale=1.0, user-scalable=no' /></head>" +  
               "<body style=\"background-color:{1};\"" + 
               "{0}</body></html>", 
               _selectedTab.HTML_CONTENT, 
               _selectedTab.TAB_BG_COLOR, 
               notifyJS); 
     //var htmlContent = _selectedTab.HTML_CONTENT; 

     HtmlContentView.NavigateToString(htmlContent); 

希望它有助於某人。

相關問題