Delphi、EmbedDedWB/Twebbrowser -JQueryが実行されていません
-
26-10-2019 - |
質問
埋め込み型(Twebbrowser拡張機能)を使用して、動的に生成されたコンテンツの「ライブプレビュー」のように行います。
私はjqueryをミックスに追加しようとしているので、私はいくつかの派手な効果を得ることができますが、IE9は常にすべてのいまいましいページに「ブロックされたコンテンツを許可する」と要求するので、動的に生成されたもの(webbrowser.loadfromstring)は確かに許可されません楽しむ。簡単に言えば、JavaScriptの実行を許可しません。
SecurityManagerをTembeddedWBに追加しようとしましたが、それもそうしませんでした。 FirefoxとIE9で動的コードをテストし、それが機能します(もちろん、IE9では最初に許可する必要があります。これがセキュリティの問題であることがわかりました)。
手動で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>
編集4: :私も切り替えを試みました src
GoogleにJQUERYをホストしましたが、それも機能しませんでした。メタタグを削除しても修正されませんでした。あなたがそれを提案するのに時間を無駄にする前に私が試したものをあなたに知らせるだけです:)
編集5: :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://
プロトコル:
<script type="text/javascript" src="../../jQuery.js"></script>
上記は、ファイルからHTMLをロードするときに機能します。ただし、問題は、メモリからのコンテンツとファイルシステムからのJavaScriptがセキュリティコンテキストの境界を越えているとは見なされず、その理由で組み込みブラウザーによって拒否された場合です。その場合、jqueryをHTMLコンテンツに直接埋め込む(を使用して <script>
タグ)機能する必要があります。