簡體   English   中英

無法在IE中執行本地腳本

[英]Cannot execute local script in IE

我為IE8創建了瀏覽器幫助程序對象,以便運行位於計算機上的javascript。 就像瀏覽器擴展一樣,它可以在其他瀏覽器中使用。 我正在嘗試執行以下代碼:

    IHTMLWindow2* pWindow;
    doc->get_parentWindow(&pWindow);

    hr = pWindow->execScript((BSTR)"var d=window.document,\
s=d.createElement('script'),\
h=d.getElementsByTagName('body')[0];\
s.src='file:///L:/prg/Web/ieplugin/ieplugin.js';\
h.appendChild(s);",
(BSTR)"JavaScript", &vResult);

但是結果是E_INVALIDARG,這很可能是由腳本地址引起的。 是否可以在不降低Internet Zone安全性設置的情況下從計算機運行腳本? 我試圖將“受信任的站點”的安全設置設置為最低,並添加到“ file:// localserver”的受信任站點,但無濟於事。

編輯:更具體地說,我在IE窗口中收到以下錯誤消息:

Message: Invalid character

Line: 1

Char: 1

Code: 0

URI: file:///L:/prg/Web/ieplugin/ieplugin.js

Internet Explorer不允許在非File://交付的頁面中使用file://協議URI。 這項更改是在2011年進行的,僅適用於INTERNET和RESTRICTED ZONE網站。

有關詳細信息,請參見http://blogs.msdn.com/b/ieinternals/archive/2011/08/12/internet-explorer-9.0.2-update-changes-file-protocol-and-cookie-naming.aspx

要解決此問題,請讓您的擴展將目標腳本的內容加載到BSTR中,然后使用該BS​​TR傳遞給execScript。

暫無
暫無

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

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