无法在IE中执行本地脚本
Cannot execute local script in IE
我为IE8创建了一个Browser Helper对象,以便运行位于我计算机上的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区域安全设置的情况下从我的计算机运行脚本?我尝试将受信任站点的安全设置设置为最小值,并添加到受信任站点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年就做出了,仅适用于互联网和限制区网站。
请参阅http://blogs.msdn.com/b/ieinternals/archive/2011/08/12/internet-explorer-9.0.2-update-changes-file-protocol-and-cookie-naming.aspx详细信息。
要解决此问题,请让您的扩展将目标脚本的内容加载到BSTR中,并使用该BSTR传递到execScript中。
相关文章:
- 使用 execv 从C++代码执行的 Linux 脚本失败
- C++ Python 并不总是执行 Python 脚本
- 在使用PyInstaller冻结Python脚本时包含一个C++可执行文件
- 如何在 ubuntu 上的 php 脚本中获取程序(c,c++,java,python,php)的执行时间和内存使用量?
- 将 nodejs 脚本作为子进程执行(而不是从其他脚本执行)
- 无法从Linux,C ++执行"my_script" python脚本"main(filename)"功能;pModule = PyImport_Import(pName);返回空值
- VIM:执行复杂文件类型的脚本和显示结果
- 在C 功能执行后,使用GCHANDLE CRALSES将大型结构从C#Unity脚本传递到C DLL
- 如何使用gnu_parallal以运行多个可执行文件和/或bash脚本
- 使用C++脚本自动执行 CMake 生成
- 可视化 将 c++ 可执行文件图标添加到预制件 5 构建脚本
- C++执行执行的 bash 脚本随机停止
- 将输入值从BASH脚本传递到C 可执行文件
- 在C 中执行SQL脚本
- 从Perl脚本执行C++程序;它是否需要编译器
- 执行来自C的PHP脚本
- C++临时文件作为 bash 脚本执行
- 从php脚本执行共享库文件
- cmake:试图在cmake脚本执行期间调用msbuild
- 块执行流,直到脚本执行完成