2011-01-19 53 views
0

我试图获得一些针对AJAXChat的通知。要做到这一点,我想要做的就是让页面的标题闪烁直到聚焦。为此,我使用jquery-titlealert plugin。问题是为onload事件生成的html是在这里显示的js文件内生成的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 

当我使用它时,它打破了页面。如果我将('New Message')替换为(New Message),则页面会再次加载,但通知无法正常工作。我认为这是因为它在javascript中显示了一个javascript函数。任何人在这里看到我失踪的东西?

+0

能不能请你格式化你的代码? – polarblau 2011-01-19 21:40:19

回答

2

你试过转义引号吗?即:

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

任何单引号(')一个单引号字符(或双引号字符串中双引号("))内之前,它需要一个反斜杠(\)。有关字符串和正确字符转义的更多信息,请参阅MDN String Literals documentation

+0

页面不再破坏,但它仍然不能正常工作,所以一定不是问题所在。无论如何,我会给你答案的答案,因为你回答了这个问题,对于为什么解释彻底。 – tking 2011-01-19 21:45:51

0

您需要转义引号。 更改此

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

这个

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

尝试逃离apostraphe的正确:

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