<a> tag problem while generating javascript through java code</a>

时间:2009-10-29 11:12:21

标签: java javascript

我应该如何用Java编写语句以在页面中生成JavaScript

out.write("document.write('< a href='str'> '+str.slice(beg+1,end)+' </a>');");

这样它将在JavaScript中创建语句

document.write("< a href=' "+str+" '> "+str.slice(beg+1,end)+" </a>"); //< a

,链接将转到其地址存储在str

中的页面

当然它将href值作为str而不是存储在str中的值,即它正在搜索页面str

3 个答案:

答案 0 :(得分:2)

out.write("document.write(\"< a href='\" + str + \"'> \" + str.slice(beg + 1, end) + \" </a>\");");

答案 1 :(得分:1)

您没有关闭<a>代码!

document.write("<a href='" + str + "'>" + str.slice(beg+1, end) + "</a>");

答案 2 :(得分:0)

out.write("document.write('<a href='str'> '+str.slice(beg+1,end)+' </a>');");

哎呀,你这里有四个级别的字符串编码 - 难怪它让你感到困惑。您在Java字符串文字内的HTML <script>块内的JavaScript字符串文字内的HTML文本节点内有一个文本字符串。

最好避免做这样的事情,因为它很容易出错。您缺少+以将str连接到属性值中的字符串;如果str包含<&,则由于嵌入HTML而导致问题(可能导致跨站点脚本安全漏洞);如果str包含空格或引号,则由于嵌入属性值而导致问题; </块中的<script>序列无效HTML

虽然您可以通过破解自己的字符串转义函数来解决这个问题,但我会说您最好不要使用不涉及串联字符串的函数:

out.write(
    "var link= document.createElement('a');\n"+
    "link.href= str;\n"+
    "link.appendChild(document.createTextNode(str.slice(beg+1, end)));\n"+
    "document.getElementById('foo').appendChild(link);\n"
);

foo是您希望链接显示的元素。