1

私はEmbeddedWB(TWebbrowser拡張機能)を使用して、動的に生成されたコンテンツの「ライブプレビュー」のようにしています。

私はjQueryをミックスに追加しようとしているので、いくつかの素晴らしい効果を得ることができますが、IE9は常にすべてのくそったページに対して「ブロックされたコンテンツを許可する」と要求するため、動的に生成されたページ(Webbrowser.LoadFromString)は確かに許可されません楽しむ。簡単に言うと、Javascriptの実行は許可されません。

TEmbeddedWBにSecurityManagerを追加しようとしましたが、それもできませんでした。FirefoxとIE9で動的コードをテストしましたが、動作します(もちろん、IE9では最初に許可する必要があります。これがセキュリティの問題であることがわかりました)。

手動でIEにアクセスして何かを微調整することなく、これを回避するための簡単な方法はありますか?それとも、問題の原因について完全に間違っていますか?

編集:この記事の方法を試した後、IEはそれがもう何かを許可するべきかどうか尋ねませんが、私のスクリプトはまだ私のTEmbeddedWB/TWebbrowser内で実行されていません。

編集2:さて、jQueryコードを削除し、プレーンなアラートを表示することで、JSが実行されていると結論付けざるを得ませんが、jQueryは実行されていません。

編集3:これが私のアプリが生成する(削除された)HTMLコードで、jQueryはEmbeddedWB / TWebbrowserコントロールでは機能しませんが InternetExplorer9自体では機能します。

<!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:私もsrcGoogle Hosted jQueryに切り替えようとしましたが、それも機能しませんでした。メタタグを削除しても修正されませんでした。あなたがそれを提案することに時間を無駄にする前に、私が試したことをあなたに知らせるだけです:)

EDIT5:jQuery(Webbrowser.Navigate)を使用するサイトに移動すると、サイトは期待どおりに機能していました。ただし、ローカルのtest.htmlから実行する場合、または実行する.LoadFromString();場合は、機能しません。

動作しません=jQueryコードが実行されていません。

4

1 に答える 1

2

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がセキュリティコンテキストの境界を越えていると見なされず、その理由で組み込みブラウザによって拒否された場合です。<script>その場合、(タグを使用して)HTMLコンテンツにjqueryを直接埋め込むことが機能するはずです。

于 2011-07-26T08:34:12.643 に答える