[英]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網站。
要解決此問題,請讓您的擴展將目標腳本的內容加載到BSTR中,然后使用該BSTR傳遞給execScript。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.