0

私は CMS システムを持っており、広告を管理するオプションを作成しました。今私が持っているのは、コードを貼り付けるテキストボックスです。広告をすばやく表示して、広告が機能しているかどうかを確認できるようにしたいと考えています。問題は次のようなものです: jqueryを使用してiframeにJavaScriptのGoogle広告を動的に表示する問題(最初の回答を読んでください)。

どういうわけかそれを行うことができるのか、それとも唯一のオプションはコードを貼り付けることしかできないのか疑問に思っていましたが、CMS自体からは動作していません。

EDIT 私はコードを追加しています:

    <div class="block" data="500" style="margin-top: 5px; height: 644px;">
    <span class="brow" style="float: right;"><span class="label pla">תצוגה מקדימה:</span><div class="dprev"></div></span>
    <span class="brow" style="float: left; margin-top: 0;"><span class="label">הקוד:</span><br />
    <form action="pages/ad.php" target="preview1" method="post">
        <textarea data="1" name="textbox" class="dcode" style="float: none; resize: none; width: 312px; height: 543px;">
            <div style="width:160px;border:solid 1px #E5E5E5">
            <INPUT id="merlin_q3" type="hidden" value="1">
            <SCRIPT type=text/javascript>
            function fnMerlinAddUrl(qStr,val) {
            try{return('&' + qStr + '=' + val)}
            catch(e){}
            }
            //params
            merlin_partnerid = "3541";
            merlin_search="q3";
            merlin_search_result= '6';
            merlin_start_offset= 0;
            merlin_cols = '1';
            merlin_lang="heb";
            merlin_width ="90%";
            merlin_url = "" ;
            merlin_AdType="short_title_heb";
            merlin_Iframe_Unique_Index="3";
            merlin_default = "1";
            merlin_decodeKeyword = escape(document.getElementById("merlin_q3").value);
            var path='http://www.merlin.co.il/merlin_3rdparty/merlin_3rdparty.asp'; //&all=news
            merlin_url=path+"?utf=0&fixed=marimedia&modaa=mo"+fnMerlinAddUrl("partnerid",merlin_partnerid);
            merlin_url+=fnMerlinAddUrl("lang",merlin_lang);
            merlin_url+=fnMerlinAddUrl("AdType",merlin_AdType);
            merlin_url+=fnMerlinAddUrl("qtyResult",merlin_search_result);
            merlin_url+=fnMerlinAddUrl("ScriptIndex",merlin_Iframe_Unique_Index);
            merlin_url+=fnMerlinAddUrl("start_offset",merlin_start_offset);
            merlin_url+=fnMerlinAddUrl("cols",merlin_cols);
            merlin_url+=fnMerlinAddUrl("merlin_default",merlin_default);
            merlin_url+='&q=' +merlin_decodeKeyword;
            merlin_url+='&urlTag='+ "http%3A%2F%2Ftracking.merlin.co.il%2Faff_c%3Foffer_id%3D58%26aff_id%3D1216%26file_id%3D1652";
            document.write("<table width=100%><tr><td valign=top id='Merlin_tdInsert3'></td></tr></table>");
            var MerlinSS_OBJ=document.getElementsByTagName("HEAD");
            if(!MerlinSS_OBJ)document.createElement('HEAD');
            var  oScript= document.createElement("script");
            oScript.setAttribute("src",merlin_url); 
            document.getElementsByTagName("HEAD")[0].appendChild(oScript);
            </SCRIPT>
            </div><img src="http://tracking.merlin.co.il/aff_i?offer_id=58&aff_id=1216&file_id=1652" width="1" height="1">
        </textarea>
    </form></span>
    <button style="position: absolute; margin-right: 330px; bottom: 14px;"><img src="img/v.png" style="margin-top: -2px; margin-left: 2px;" alt="add" height="28"/>שמור שינויים</button>
</div>
<h1 style="margin-top: -45px; position: relative;right: 574px;">פרסומת 2:</h1>
<div class="block" data="500" style="margin-right: 45px; height: 644px; margin-top: 5px;">
    <span class="brow" style="float: right;"><span class="label pla">תצוגה מקדימה:</span><div class="dprev"></div></span>
    <span class="brow" style="float: left; margin-top: 0;"><span class="label">הקוד:</span><br />
    <form action="pages/ad.php" target="preview2" method="POST">    
        <textarea data="2" class="dcode" style="float: none; resize: none; width: 312px; height: 543px;">
            <script type="text/javascript"><!--
            google_ad_client = "pub-2151667935419035";
            /* 120x600, created 7/17/08 */
            google_ad_slot = "8233032726";
            google_ad_width = 120;
            google_ad_height = 600;
            //-->
            </script>
            <script type="text/javascript"
            src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
            </script>
        </textarea>
    </form></span>
    <button style="position: absolute; margin-right: 330px; bottom: 14px;"><img 

    src="img/v.png" style="margin-top: -2px; margin-left: 2px;" alt="add" height="28"/>שמור שינויים</button>
    </div>
    <script>
    $("textarea.dcode").each(function (){
        $(this).closest("div").children("span:first-child").children("div.dprev").html('<iframe class="adprev" name="preview'+$(this).attr("data")+'" src="pages/ad.php"></iframe>');
        $(this).val($(this).text());
        $('form[target="preview'+$(this).attr("data")+'"]').submit();
    }).keyup(function (){
        $(this).closest("div").children("span:first-child").children("div.dprev").html('<iframe class="adprev" name="preview'+$(this).attr("data")+'" src="pages/ad.php"></iframe>');
        $('form[target="preview'+$(this).attr("data")+'"]').submit();
    });
    </script>

そこには他の言語がありますが、それは重要ではありません。2 つの iframe があることがわかりますが、コードは最初の iframe に対してのみ機能します。(最初はマーリン広告で、2番目はGoogle広告ですが、2番目のテキストボックスにマーリンを入れても機能しません)。

4

1 に答える 1

1

私はこの解決策を自分で試したことはありませんが、おそらく次のようなことをする必要があるでしょう:

  1. サーバーからの URL を使用して動的に iframe を作成し、そこにテキストボックスの値を渡します (たとえばiframe1.html?textbox=<encoded text from the textbox>)。同じドメインで行うため、これは許可されます。
  2. サーバー上でレンダリング中iframe1.htmlに、今しようとしている iframe をもう 1 つ挿入します。それはブラウザにとって静的に見えるでしょう!
  3. iframe 内に iframe があります。ただし、JavaScript でクロスドメイン iframe を作成することはもうありません。
  4. 利益!

それが役立つことを願っています!もしそうなら、私に知らせてください、私は自分自身に興味があります)

于 2012-06-07T12:15:17.987 に答える