2011-01-19 9 views
0

私はAJAXChatのために働くいくつかの通知を取得しようとしています。これを行うには、フォーカスするまで点滅するページのタイトルを取得するだけです。これを行うにはjquery-titlealert pluginを使用しています。問題は、私はこれを使用すると、それがページを壊すjavascriptの構文

return '<div id="' 
      + this.getMessageDocumentID(messageID) 
      + '" class="' 
      + rowClass 
      + '">' 
      + this.getDeletionLink(messageID, userID, userRole, channelID) 
      + dateTime 
      + '<span class="' 
      + userClass 
      + '"' 
      + this.getChatListUserNameTitle(userID, userName, userRole, ip) 
      + ' dir="' 
      + this.baseDirection 
      + '" onload="$.titleAlert('New Message');">' 
      + userName 
      + '</span>' 
      + colon 
      + this.replaceText(messageText) 
      + '</div>'; 
    return 

ここに示したのonloadイベントのために生成されるHTMLはJSファイルの内部で生成されています。 ('New Message')(New Message)に置き換えると、ページは再び読み込まれますが、通知は機能しません。私はこれがjavascriptの中にjavascript関数を表示しているからだと思う。誰でもここに何かが見える私は行方不明ですか?

+0

あなたはあなたのコードをフォーマットしていただけますか? – polarblau

答えて

2

引用符をエスケープしましたか?すなわち:

+ '" onload="$.titleAlert(\'New Message\');">' 

任意の単一引用符(')(二重引用符で囲まれた文字列の中または二重引用符("))、単一引用符で囲まれた文字列の内部には、その前にバックスラッシュ(\)が必要です。文字列と適切な文字エスケープの詳細については、MDN String Literals documentationを参照してください。

+0

ページはもはや壊れませんが、まだ動作していないので、問題であってはなりません。とにかく質問に答えて理由を説明してくれたので、私はあなたに答えの答えを与えます。 – tking

0

引用符をエスケープする必要があります。 変更この

'" onload="$.titleAlert(\'New Message\');">' 
0

にこの

'" onload="$.titleAlert('New Message');">' 

はapostrapheの正しくエスケープしてみてください。

+ '" onload="$.titleAlert(\'New Message\');">'