none
Help! System.Windows.Forms.WebBrowser 的暫存與設定 在哪裡? RRS feed

  • 問題

  • 小弟在開發 Power Point add-in,使用VSTO。
    在側窗 使用了 「System.Windows.Forms.WebBrowser」。
    在一次測試開發的網頁時,出現「網頁錯誤」,「是否要針對此網頁進行偵錯?」;
    網頁錯誤 - 偵錯
    當時按到「否」,就果之後不論怎麼刪除(IE、Edge、...等瀏覽器記錄、清理磁碟)、重裝(VSTO工具、Visual C++轉發套件、Visual Studio、Office),都回不到預設值。

    我發現,只要用同一個元件 (System.Windows.Forms.WebBrowser),不論開發什麼程式,同一台電腦的記錄 到哪都一樣。
    要怎麼清除? 它存到哪裡? local storage 存到哪裡? (慌)

    2017年10月25日 上午 08:36

解答

  • 有試過瀏覽器的重設嗎?
    然後瀏覽器全關閉再重試

    希望能幫到你



    • 已編輯 iamcdy 2017年10月25日 上午 09:22
    • 已標示為解答 Robertsong 2017年10月26日 上午 06:38
    2017年10月25日 上午 09:19
  • 這個視窗表示,你網頁上的 script 語法參照到不存在的物件。

    WebBrowser 預設會使用舊版的 IE 模式,你用 IE 測試那個網頁,開到 IE5 試試看是否正常,如果 javascript 用到新版語法,該語法不存在舊版模式上,就會跳錯。

    如果網頁也是你自己寫的,可以參考這篇:

    [H5] 讓 WebBrowser Control 直接相容 HTML5 網頁


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    • 已標示為解答 Robertsong 2017年10月26日 上午 06:38
    2017年10月25日 上午 10:57

所有回覆

  • 有試過瀏覽器的重設嗎?
    然後瀏覽器全關閉再重試

    希望能幫到你



    • 已編輯 iamcdy 2017年10月25日 上午 09:22
    • 已標示為解答 Robertsong 2017年10月26日 上午 06:38
    2017年10月25日 上午 09:19
  • 這個視窗表示,你網頁上的 script 語法參照到不存在的物件。

    WebBrowser 預設會使用舊版的 IE 模式,你用 IE 測試那個網頁,開到 IE5 試試看是否正常,如果 javascript 用到新版語法,該語法不存在舊版模式上,就會跳錯。

    如果網頁也是你自己寫的,可以參考這篇:

    [H5] 讓 WebBrowser Control 直接相容 HTML5 網頁


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    • 已標示為解答 Robertsong 2017年10月26日 上午 06:38
    2017年10月25日 上午 10:57
  • [都回不到預設值]是什麼意思?
    2017年10月26日 上午 12:50
  • [都回不到預設值]是什麼意思?

    無法清除 網頁暫存、cache、seesion、cookie、local storage 之類的..。
    因為不曉得我遇到的問題(每頁顯示幾筆資料,客製的元件),它的癥結點在哪裡。
    我用VM裝了一個乾淨的系統,一樣的安裝與操作 在office add-in 瀏覽網頁 是不會出現問題的。
    而且在host主機上,現有的瀏覽器 Chrome、IE、Edge 都不會出現問題..,
    偏偏我電腦上的 「System.Windows.Forms.WebBrowser」 在ppt add-in(側窗格) 裡出現這個問題,陰魂不散。

    我不知道 「WebBrowser」 這個元件,是包含在哪一個安裝之中,[vsto runtime]? [.Net Framework]? [VC++ 轉發套件]? [office]? [MSVS]?
    昨天就花了很多時間,重裝我以為會包含在其中的軟體或元件..,(檢查更新,已經是最新的了)
    重裝後應該會都是最新的..,可是問題沒有解決..。
    我不知道「System.Windows.Forms.WebBrowser」這個元件有沒有新版..,就算有,又要去哪裡更新?(環繞著一堆問題..)

    p.s. Host:Win10+office2013、VM:Win7sp1+office2016

    iamcdy 大大提出的「重設瀏覽器」倒可以試試看,之前只有清除 離線暫存、cookie 之類的..。

    也謝謝  心冷熱情熄 大大,開始懷疑 是不是 「System.Windows.Forms.WebBrowser」 元件太過老舊..;電腦上的 IE11、Edge40 沒有此問題..。

    我有用 偵錯 去看這個客製元件 跳出JS出問題的地方,就是「$('div.'+element_id+ '> #page_combobox_table').position()」這個undefined,
    但瀏覽器 都是有值的。


    • 已編輯 Robertsong 2017年10月26日 上午 02:50
    2017年10月26日 上午 02:50
  • 唉.. 走投無路..
    因為「每頁顯示幾筆」這項元件,是自製的..,牽扯很多原始碼..,也不好意思直接大哉問..;
    所以問一些 「System.Windows.Forms.WebBrowser」相關的問題..。

    最原始的問題就是:
    為什麼vsto在我的ppt上,「每頁顯示幾筆」會失效;
    可是發佈後,安裝在VM的ppt上,「每頁顯示幾筆」就正常?

    在我的電腦上,隨意寫一個「Form」使用「WebBrowser」還是正常的,
    就是使用在我的ppt會失效...。orz

    VM的ppt是2016,我也把2016再裝上去,還是失效..。

    ---
    以上大大 對於 「WebBrowser」的回答 試過 都是對的,
    還是有在微軟領域的大大們厲害。 謝謝您們 :)

    2017年10月26日 上午 06:38
  • WebBrowser 是 IE 附屬元件,隨 IE 更新。

    MFC / ActiveX / .Net framework 都有包裝介面,要看你從哪個工具列拖拉。

    基本上你的錯誤訊息是 script 造成,所以 IE 開模擬模式測比較有意義。

    你電腦是 IE11 ,表示 WebBrowser 支援 HTML5 ,但預設不支援。先用 IE 除錯,看在 IE 模擬器開哪個版本會錯,哪個版本正常。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2017年10月26日 上午 11:35
  • WebBrowser 是 IE 附屬元件,隨 IE 更新。

    MFC / ActiveX / .Net framework 都有包裝介面,要看你從哪個工具列拖拉。

    基本上你的錯誤訊息是 script 造成,所以 IE 開模擬模式測比較有意義。

    你電腦是 IE11 ,表示 WebBrowser 支援 HTML5 ,但預設不支援。先用 IE 除錯,看在 IE 模擬器開哪個版本會錯,哪個版本正常。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    非常感謝您的幫忙。

    從昨天到現在的測試結果:IE11、Edge、開一個新的Form專案、模擬模式(8~11)都正常。

    可是只要放在 VSTO 的「UserControl」裡,給Office (PowerPoint, Word) 就異常...。

    真的很奇怪..,指定瀏覽器版本在 VSTO 的「UserControl」裡 就無效?
    另建一個 新的Form專案 使用 WebBrowser 就正常耶! (苦惱)

    - - - - - - -

    namespace Ppt01
    {
        public partial class ThisAddIn
        {
            private void ThisAddIn_Startup(object sender, System.EventArgs e)
            {
                var myUserControl1 = new MyUserControl();
                var myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "My Task Pane");
                myCustomTaskPane.Visible = true;
            }
    
            // ...
    
        }
    }
    namespace Ppt01
    {
        public partial class MyUserControl : UserControl
        {
            public MyUserControl()
            {
                InitializeComponent();
    
                webBrowser1.Navigate( "http://127.0.0.1:8080/site/login.do" );
            }
        }
    }

    • 已編輯 Robertsong 2017年10月27日 上午 02:55 補上code
    2017年10月27日 上午 02:49
  • WebBowser 預設對應 IE5 。

    由於你在其他情況可以正常開啟,請確認你兩個 WebBrowser 網頁是屬於哪個安全區域的對應。

    微軟把本機硬碟含網路芳鄰的 UNC 路徑安全性管很嚴,所以連 Visual Studio 的本機線上手冊都用 localhost 在跑,用 localhost 是屬於近端網站的安全性。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2017年10月27日 下午 04:01
  • WebBowser 預設對應 IE5 。

    由於你在其他情況可以正常開啟,請確認你兩個 WebBrowser 網頁是屬於哪個安全區域的對應。

    微軟把本機硬碟含網路芳鄰的 UNC 路徑安全性管很嚴,所以連 Visual Studio 的本機線上手冊都用 localhost 在跑,用 localhost 是屬於近端網站的安全性。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    謝謝 心冷大大:

        網域的部分..,都是用 127.0.0.1 ..
    在IE的部分,已經「網際網路選項」->「安全性」裡的安全等級都調最低,還是沒辦法解決..,
    若在下的嘗試 誤解/漏了哪些 操作/步驟,還望您耐心指導。

    最近在處理簽署的問題..,微軟的每個部分,對我都是全新的領域。@@

    謝謝 心冷大 一路的幫助。(鞠躬)

    這個久而不能解決的問題..,開始有想要用別的 瀏覽元件,搜尋到:「CefSharp」、「GeckoFX」;不過天曉得還會遇到什麼困難。^^"
    而且,目前還不知道怎麼引用。

    2017年10月31日 上午 01:37