gpt4 book ai didi

从java中生成html报告时的javascript问题

转载 作者:行者123 更新时间:2023-11-28 14:04:08 24 4
gpt4 key购买 nike

我一直在开发一个 Java 项目,其中的报告将以 HTML 格式生成,因此我正在实现创建这些报告的方法。一项重要的功能是能够在表格中包含尽可能多的信息,但又不会太困惑。换句话说,如果用户希望查看详细信息,则这些详细信息应该可用,但默认情况下不一定可见。

我做了一些搜索和测试,发现了一个有趣的模板,用于使用 CSS 和 javascript 隐藏/显示内容,问题是当我尝试生成的 html 页面时,脚本不起作用。我不确定这是由于 Java 还是 javascript 本身的问题。我将 java 生成的 html 代码与我找到模板的源代码进行了比较,它们似乎匹配得很好。

下面是我生成 javascript 和内容的 java 代码,如果有人能指出此问题的可能原因,我将不胜感激:

//转到头部

private void addShowHideScript() throws IOException{
StringBuilder sb = new StringBuilder();
sb.append("<script type=\"text/javascript\" language=\"JavaScript\">\n");
sb.append("<!--function HideContent(d) {\n");
sb.append("document.getElementById(d).style.display=\"none\";}\n");

sb.append("function ShowContent(d) {\n");
sb.append("document.getElementById(d).style.display=\"block\";}\n");

sb.append("function ReverseDisplay(d) {\n");
sb.append("if(document.getElementById(d).style.display==\"none\")\n");
sb.append("{ document.getElementById(d).style.display=\"block\"; }\n");
sb.append("else { document.getElementById(d).style.display=\"none\"; }\n}\n");
sb.append("//--></script>\n");
out.write(sb.toString());
out.newLine();
}

//正文

    private String linkShowHideContent(String pathname, String divname){
StringBuilder sb = new StringBuilder();
sb.append("<a href=\"javascript:ReverseDisplay('");
sb.append(divname);
sb.append("')\">");
sb.append(pathname);
sb.append("</a>");
return sb.toString();

}

//内容

    out.write(linkShowHideContent("hidden content", "ex"));
out.write("<div id=\"ex\" style=\"display:block;\">");
out.write("<p>Content goes here.</p></div>");

更新//反射(reflect)问题的页面中的一段 html 代码

<html><head><style type="text/css">

#table {font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; width:75%;border-collapse:collapse;}
#table td, #table th {font-size:1em;border:1px solid #98bf21;padding:5px 8px 5px 10px;}
#table th {font-size:1.2em;text-align:left;padding-top:5px;padding-bottom:4px;background-color:#A7C942;color:#fff;}
#table tr.alt td {color:#000;background-color:#EAF2D3;}
</style></head><body>
<h2> QUERY RESULTS </h2>
<script type="text/javascript" language="javascript">
<!--function HideContent(d) {
document.getElementById(d).style.display="none";}
function ShowContent(d) {
document.getElementById(d).style.display="block";}
function ReverseDisplay(d) {
if(document.getElementById(d).style.display=="none")
{ document.getElementById(d).style.display="block"; }
else { document.getElementById(d).style.display="none"; }
}
//--></script>
<a href="javascript:ReverseDisplay('ex')">hidden content</a>
<div id="ex" style="display:block;">
<p>Content goes here.</p></div>

最佳答案

我执行了你的方法,结果如下(不包括格式:D):

<script type="text/javascript" language="JavaScript">
<!--
function HideContent(d) {
document.getElementById(d).style.display="none";
}

function ShowContent(d) {
document.getElementById(d).style.display="block";
}

function ReverseDisplay(d) {
if(document.getElementById(d).style.display=="none") {
document.getElementById(d).style.display="block"; }
else {
document.getElementById(d).style.display="none";
}
}
//-->
</script>

<a href="javascript:ReverseDisplay('ex')">hidden content</a>
<div id="ex" style="display:block;">
<p>Content goes here.</p>
</div>

它在 IE 8 和 Firefox 3.6 上运行良好。

您的浏览器中是否禁用了 JavaScript 或某些安全限制会阻止您的脚本运行?

编辑:根据您发布的代码,问题似乎是这样的:

<!--function HideContent(d) {

如果你这样写它就可以工作:

<!--
function HideContent(d) {

关于从java中生成html报告时的javascript问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2911440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com