gpt4 book ai didi

javascript - Delphi、EmbeddedWB/TWebbrowser - jQuery 未执行

转载 作者:行者123 更新时间:2023-11-30 18:41:13 28 4
gpt4 key购买 nike

我正在使用 EmbeddedWB(一个 TWebbrowser 扩展)做一些动态生成内容的“实时预览”。

我正在尝试将 jQuery 添加到组合中,这样我就可以得到一些奇特的效果,但是由于 IE9 总是为每个该死的页面询问“允许阻止的内容”,动态生成的页面 (Webbrowser.LoadFromString) 当然不会被允许玩得开心。简单来说:它不允许执行 Javascript。

我尝试将 SecurityManager 添加到我的 TEmbeddedWB,但这也没有成功。我在 Firefox 和 IE9 中测试了我的动态代码,它可以工作(当然,在 IE9 中我必须首先允许,这就是我发现它是一个安全问题的原因)。

有没有一种无需手动进入 IE 并进行调整的轻松方法来解决这个问题?还是我对问题的原因完全错了?

编辑:尝试后 this article's method , IE 不再询问它是否应该允许东西,但是我的脚本仍然没有在我的 TEmbeddedWB/TWebbrowser 中执行..

编辑 2:好的,通过删除 jQuery 代码并显示一个普通的警报,我不得不得出结论,JS 现在正在执行,但 jQuery 没有。

编辑 3:这是我的应用程序生成的(精简的)HTML 代码,其中 jQuery 在我的 EmbeddedWB/TWebbrowser 控件中不起作用 - 但是,它起作用在 Internet Explorer 9 本身中:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<script type="text/javascript" src="file://C:\jQuery.js"></script>
</head>
<body>
<center>
<p>
Some stuff here!
</p>
</center>

<script type="text/javascript" language="javascript">
$(document).ready(function(){
alert('I Am jQuery!!!!');
});
</script>
</body>
</html>

EDIT4:我也尝试过将 src 切换到 Google Hosted jQuery,但也没有用。删除 Metatag 也没有解决它。在您浪费时间提出建议之前,让您知道我尝试过的东西 :)

EDIT5:通过导航到使用 jQuery (Webbrowser.Navigate) 的站点,该站点按预期工作。但是,当从我的本地 test.html 或通过 .LoadFromString(); 执行此操作时,它将不起作用。

不会工作 = jQuery 代码不执行。

最佳答案

如果您为 jquery.js 文件使用正确的 URL,它似乎可以工作:

<script type="text/javascript" src="file://C:/jQuery.js"></script>
<script type="text/javascript" src="file:///jQuery.js"></script>

或者相对路径,也可以省略file://协议(protocol):

<script type="text/javascript" src="../../jQuery.js"></script>

当您从文件加载 HTML 时,上面的方法有效。然而,问题是,如果来自内存的内容和来自文件系统的 javascript 不被视为跨越安全上下文边界并因此被嵌入式浏览器拒绝。在这种情况下,将 jquery 直接嵌入 HTML 内容(使用 <script> 标记)应该可行。

关于javascript - Delphi、EmbeddedWB/TWebbrowser - jQuery 未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6823677/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com