我在firefox 6和IE 8中的html中遇到了一个奇怪的问题
这一行是在Java Class
中生成的<a onclick="updateEventDataDiv('1. some text <br>2. some text <br>', event);" href="javascript:void(0)"> some text </a>
这是在Java类中动态创建的链接,在单击链接时会创建一个JavaScript弹出窗口。 Java代码没有什么特别之处,它只是遍历列表并将值连接到此HTML代码。
问题在于点击时出现Javascript错误。
Error: unterminated string literal
Source File: http://localhost:18080/xxx/xxx/xxx.htm?actionLink=xxxTable-controlLink&ascending=false&column=raisedAt&page=x
Line: 1, Column: 19
Source Code:
updateEventDataDiv('x value
,箭头指向x之前的单引号。
打开萤火虫时的奇怪之处 - &gt;检查元素并查看元素,引号完全封闭如果我更改任何内容,即删除空格,添加空格,删除引号或使用firebug动态执行任何操作,然后单击它工作的链接!我可以看到弹出窗口
不仅生产服务器中生成的相同java代码和生成的相同HTML页面都像魅力一样......没有任何问题..它在我的本地开发环境中...
我也在同一页面上收到1个javascripit错误但是firefox也没告诉我任何关于它的细节和行号
并且还有一件事..我保存了页面并在firefox中运行..同样的问题..然后编辑..在行中的某个地方删除了一个空白区域,它工作并继续工作我不必调整它更多...然后为什么它不会像它应该的那样工作
需要帮助..必须在我的loca dev env上完成这项工作!
答案 0 :(得分:2)
我的猜测是字符串在服务器端包含一个换行符 - 所以当它吐入DOM时它被视为未终结:
<a onclick="updateEventDataDiv('x value
blah', event);" href="javascript:void(0)"> some text </a>
需要
<a onclick="updateEventDataDiv('x value blah', event);" href="javascript:void(0)"> some text </a>
它不是无效的HTML,但它是无效的javascript。
因此,您可能需要删除字符串服务器端的任何换行符。