2011-07-08 8 views
1

私はFacebookのような有名なボタンのバーを表示するガジェットを作っています:Tweet、Google PlusとLinkedIn Share。Googleガジェットが正しくレンダリングされないのはなぜですか?

gadget HTMLをエディタhereに貼り付けると、表示がうまく表示されます。

は私のガジェットのコードは基本的にHTMLコンテンツをロードし、次のようにdiv要素の内側にそれを入れて何:

<Content type="html"> 
<![CDATA[ 
<div id="content_div"></div> 
<script type="text/javascript"> 

function displayButtons(){ 
     var params = {}; 
     params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.TEXT; 
     var url = "http://hosting.gmodules.com/ig/gadgets/file/109164222302601753554/share_bar.html"; 
     gadgets.io.makeRequest(url, adjust, params); 
    } 

    function adjust(obj){ 
     document.getElementById('content_div').innerHTML = obj.text; 
    } 

    gadgets.util.registerOnLoadHandler(displayButtons); 
</script> 
]]> 
</Content> 

私はiGoogleのか、Googleサイトでそれをテストするとき、私が得るすべては、ツイート内テキストのハイパーリンクです。

誰でも私が間違っていることを理解してもらえますか?

答えて

0

FirefoxとChromeの両方に、ブラウザに含めるコンテンツのアドレスを入力すると、XMLレンダリングエラーが発生します。 IE9では、ページは空白です。

Chromeは最高のヒントがあり:このページは以下のエラーが含まれ

を:コラム28の5行目

エラー:プラスワンの名前空間接頭辞gは 定義さ

エラーではありません列18の18行目:like上の名前空間接頭辞fbが 未定義

以下は、最初のページまでのレンダリングですエラー。

ツイート

だから、最初のshare_bar.htmlファイルを見てください。

EDIT 挿入しようとしているコンテンツには、複数のSCRIPTタグが含まれています。ブラウザは、要素のinnerHTMLプロパティを設定することで、実行しようとしているスクリプトインジェクションに問題があるようです。

私がShindig/Partuzaのコンボテスト環境(iGoogleや他のOpenSocialコンテナに近い)でテストしたときの解決策は、jQueryを使って挿入することでした。

このようなモジュールのコンテンツセクションの上部に

このように、私は最初にロードされたjQueryのlibに:innerHTMLプロパティを操作する、私は有用な「.htmlを」メソッドを呼び出した後、

<Content type="html"> 
<![CDATA[ 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"> </script> 
<div id="content_div"></div> 
... 

し、代わりに(のhttp:/ /jqapi.com/#p=html):

function adjust(obj){ 
    $('#content_div').html(obj.text); 
} 

希望します。

+0

ファイルにエラーはありません。 とタグがないため、エラーが表示されることがあります。私は知らない。だから私はw3学校でエディタを使うことを提案した。私はまた、ガジェットが動作する方法を変更し、同じhtmlで動作するようになりました。私はまだそれが私が質問で言及した方法で動作しなかった理由を知りたいです。 –

+1

私はいくつかの掘り出しを行いました。明らかに私の最初の答えはあまり役に立ちません。それを無視して2番目を考えてください。 –

関連する問題