1

jQuery.load()がロードされるコンテンツのタグをどのように処理するかについて多くの質問を見た後、jQueryがインラインタグを削除していることがわかります。しかし、私のサイトの連絡先ページにはKontactrを使用したいと思います。また、以下のコード例のように、2つのスクリプトタグがAJAXに埋め込まれています。jQuery.load()制約を回避して、これらのスクリプトタグをjQuery.load(file、callback())callback()関数で実行するにはどうすればよいですか?

index.html

<html>
<head>
    <!--include css, jquery, scripts -->
    <script type="text/javascript">
        $(document).ready(function() {
            $('#main_content').load('contact.html #main_content', function(){
                //what can I put here to run the Kontactr inline script code
                //when contact.html is loaded?
            });
        });
    </script>
</head>
<body>
    <div id="main_content"><!--content will load here--></div>
</body>
</html>

contact.html

<div id="main_content">
    <h1>Please Contact Us With The Form Below</h1>
    <!-- jQuery.load will strip out these script tags 
         and the form will not be embedded. -->
    <script type="text/javascript"> id = 1; </script>
    <script type="text/javascript" src="http://kontactr.com/wp.js"></script>
</div>

<div id="contact_form"/>おそらくcontact.htmlに 入れて、の内部のコールバック関数でスクリプトタグを評価できると思いまし$('#contact_form').html(//eval script tags result here);たが、構文的にそれを行う方法がわかりません。

4

1 に答える 1

1

したがって、他の誰かがこの問題に遭遇した場合に備えて、非常に簡単な解決策があります。

そのhttp://kontactr.com/wp.jsスクリプトは、ページへのiframeをdocument.write()するだけです。私がやったことはこれでした:

<div id="main_content">
    <h1>Please Contact Us With The Form Below</h1>
    <center>
        <iframe id="kontactr-iframe" src="http://kontactr.com/w.php?id=1&referrer=http://www.theurlyourrequestingfrom.com&color=000000-FFFFFF-000000-FFFFFF" width="475px" height="475px" frameborder="0"></iframe>
    </center>
</div>

それは魅力のように機能します。

注:color引数はオプションであり、id引数はKontactrアカウントに固有です。referrer引数はhttp://kontactr.com/wp.jsスクリプトwindow.top.location.hrefに入力されます。$ .load()ページのURLをそこに置くだけです。

于 2010-07-10T05:27:15.717 に答える