1

Google サイトの奇妙な「視聴者がコメントを残せない」問題の回避策をごまかすために、私は次のばかげたテスト スクリプトを作成しました。

function addComment(e) {
    var currentPage = SitesApp.getActivePage();
    var pageHTML = currentPage.getHtmlContent();
    var newHTML = pageHTML.replace("BEGIN", "BEGIN "+Session.getActiveUser().getEmail());
    currentPage.setHtmlContent(newHTML);
};

ユーザーがボタンを押すと、現在のページのコンテンツ変更され、BEGIN という単語の直後に現在のユーザーのメール アドレスが含まれるようになります (手動で挿入しました。これが機能する場合は、コメント タグの thingamabob を貼り付けるだけです。

これは多かれ少なかれ機能します。問題は、setHtmlContent 呼び出しが、そもそもボタンを含むアプリ スクリプト ガジェットに対してあらゆる種類の奇妙なことを行うことです。以前のガジェットは次のとおりです。

<img src="https://www.google.com/chart?chc=sites&amp;cht=d&amp;chdp=sites&amp;chl=%5B%5BGoogle+Apps+Script'%3D20'f%5Cv'a%5C%3D0'10'%3D499'0'dim'%5Cbox1'b%5CF6F6F6'fC%5CF6F6F6'eC%5C0'sk'%5C%5B%22Apps+Script+Gadget%22'%5D'a%5CV%5C%3D12'f%5C%5DV%5Cta%5C%3D10'%3D0'%3D500'%3D197'dim'%5C%3D10'%3D10'%3D500'%3D197'vdim'%5Cbox1'b%5Cva%5CF6F6F6'fC%5CC8C8C8'eC%5C'a%5C%5Do%5CLauto'f%5C&amp;sig=TbGPi2pnqyuhJ_BfSq_CO5U6FOI" data-origsrc="https://sites.google.com/a/macros/kstf.org/s/AKfycbzEsLBQucXCZZJwEh9c3RYhn81uJucvz3R5vHeJ2w/exec" data-type="maestro" data-props="align:left;borderTitle:Apps Script Gadget;height:200;showBorder:false;showBorderTitle:false;" width="500" height="200" style="display:block;text-align:left;margin-right:auto;"></div>

そしてここにそれがあります:

<img src="https://www.google.com/chart?chc=sites&amp;cht=d&amp;chdp=sites&amp;chl=%5B%5BGoogle+Gadget'%3D20'f%5Cv'a%5C%3D0'10'%3D499'0'dim'%5Cbox1'b%5CF6F6F6'fC%5CF6F6F6'eC%5C0'sk'%5C%5B%22Include+gadget+(iframe)%22'%5D'a%5CV%5C%3D12'f%5C%5DV%5Cta%5C%3D10'%3D0'%3D500'%3D197'dim'%5C%3D10'%3D10'%3D500'%3D197'vdim'%5Cbox1'b%5Cva%5CF6F6F6'fC%5CC8C8C8'eC%5C'a%5C%5Do%5CLauto'f%5C&amp;sig=CvjXRgodwYVKPvmsyZR7EbHx2uM" data-igsrc="http://0.gmodules.com/ig/ifr?mid=0&amp;synd=trogedit&amp;url=http%3A%2F%2Fwww.gstatic.com%2Fsites-gadgets%2Fiframe%2Fiframe.xml&amp;up_iframeURL=%2Fa%2Fmacros%2Fkstf.org%2Fs%2FAKfycbzEsLBQucXCZZJwEh9c3RYhn81uJucvz3R5vHeJ2w%2Fexec%3Fmid%3DACjPJvFOqF88RUUrqDeapp1PHF_lI3Xc3g5Hd3euTifzUYeaILmTTlMfBQ13yI_6%26bc%3Dtransparent%26f%3DArial%2C%2BVerdana%2C%2Bsans-serif%26tc%3D%2523444444%26lc%3D%25230033cc&amp;up_scroll=no&amp;w=100%&amp;h=200" data-type="ggs-gadget" data-props="height:200;igsrc:http#58//0.gmodules.com/ig/ifr?mid=0&amp;synd=trogedit&amp;url=http%3A%2F%2Fwww.gstatic.com%2Fsites-gadgets%2Fiframe%2Fiframe.xml&amp;up_iframeURL=%2Fa%2Fmacros%2Fkstf.org%2Fs%2FAKfycbzEsLBQucXCZZJwEh9c3RYhn81uJucvz3R5vHeJ2w%2Fexec%3Fmid%3DACjPJvFOqF88RUUrqDeapp1PHF_lI3Xc3g5Hd3euTifzUYeaILmTTlMfBQ13yI_6%26bc%3Dtransparent%26f%3DArial%2C%2BVerdana%2C%2Bsans-serif%26tc%3D%2523444444%26lc%3D%25230033cc&amp;up_scroll=no&amp;w=100%&amp;h=200;mid:0;spec:http#58//www.gstatic.com/sites-gadgets/iframe/iframe.xml;up_iframeURL:/a/macros/kstf.org/s/AKfycbzEsLBQucXCZZJwEh9c3RYhn81uJucvz3R5vHeJ2w/exec?mid=ACjPJvFOqF88RUUrqDeapp1PHF_lI3Xc3g5Hd3euTifzUYeaILmTTlMfBQ13yI_6&amp;bc=transparent&amp;f=Arial,+Verdana,+sans-serif&amp;tc=%23444444&amp;lc=%230033cc;up_scroll:no;width:100%;" width="500" height="200" style="display:block;text-align:left;margin-right:auto;" class="igm"></div>

私が知る限り、「これを HTML として設定してください」メソッドは、ドキュメントが適切に解析されていることを確認するためにいくつかの策略を講じているようですが、iframe リダイレクトの末尾追跡効果に巻き込まれています。DOM などを渡すことができれば、これは問題になりません。

何かアドバイス?これは、とにかく訪問者のコメント システムを巧みに利用できるかどうかを確認するための一種の演習でした。そのため、おそらく別のアプローチを取ることにします。

*: 訪問者のコメントを処理する他の方法をいくつか知っていますが、このシステムは、サイト作成者側の複雑な設定を必要とせずに、アプリ ドメイン内の多くのサイト作成者のために、多くのサイト ページで動作できる必要があります。最終的には、別のものを使用します (おそらく、今朝見つけた 2 つのアプリ エンジン フォーラム システムの 1 つのバリエーションです)。次の中間ステップは、これらのデータをサイト DB に保存し、ガジェット自体にコメントを配置することです。ただし、ガジェットのサイズは満足のいくものではありません。独自のスクロール バーを持つ別の iframe ではなく、ページ内にコメントを配置したいのです。

4

1 に答える 1

0

まず、getEmail() メソッドは、コンシューマー アカウントでは機能しません。また、ドメイン外のユーザーがサイトにアクセスした場合も機能しません (アプリにアクセスするユーザーとしてスクリプトが実行されない限り)。

次に、ページの HTML を変更すると、すぐには変更されませんが、次の更新時に変更が行われます。

そうは言っても、できることは、スクリプトにコメントも表示させることです。以前のコメントを表示するラベルをスクリプトに含めることができます。

于 2012-08-14T02:21:41.063 に答える