我应该如何用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
答案 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
是您希望链接显示的元素。