打开页面时,Firefox 会打开一个下载对话框
Posted
技术标签:
【中文标题】打开页面时,Firefox 会打开一个下载对话框【英文标题】:Firefox opens a download dialog box when a page is opened 【发布时间】:2009-11-25 07:27:24 【问题描述】:当我尝试在 Firefox 上打开包含以下代码的页面时,Firefox 会打开一个下载对话框。相同的代码在 IE 和 Maxthon 上运行良好。同样的问题也发生在 Safari 浏览器上。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="widgEditor.js"></script>
<title>Job Listing Entry</title>
</head>
<body>
<Form id="frmNewEntry" method="post" action="insert_listing.php">
<table id="tblEntry" cols="2" border="0">
<tr><td>Date:</td><td><input id="LDate" name="LDate" type="text" size="50">[yyyy/mm/dd]</td></tr>
<tr><td>Places:</td><td><input id="Places" name="Places" type="text" size="50" onblur="this.value=MakeInitialCapital(this.value);"></td></tr>
<tr><td>Company:</td><td><input id="Company" name="Company" type="text" size="50" onblur="this.value=MakeInitialCapital(this.value);"></td></tr>
<tr><td>Designation:</td><td><input id="Designation" name="Designation" type="text" size="50" onblur="this.value=MakeInitialCapital(this.value);"></td></tr>
<tr><td>Project Details:</td><td><textarea class="widgEditor" id="ProjectDetails" name="ProjectDetails" cols="100" rows="10""></textarea> <br></td></tr>
<tr><td>Desired Candidate:</td><td><textarea class="widgEditor" id="DesiredCandidate" name="DesiredCandidate" rows="5" cols="100" onblur="this.value=MakeInitialCapital(this.value);"></textarea> <br></td></tr>
<tr><td>HR Name:</td><td><input id="HRName" name="HRName" type="text" size="50" onblur="this.value=MakeInitialCapital(this.value);"> <br></td></tr>
<tr><td>HR Contact:</td><td><input id="HRContact" name="HRContact" type="text" size="50" onblur="this.value=MakeInitialCapital(this.value);"> <br></td></tr>
<tr><td>Email:</td><td><input id="Email" name="Email" type="text" size="50"> <br></td></tr>
<tr></tr>
<tr><td><input id="Submit" name="Submit" value="Submit" type="submit"> <br></td></tr>
</table>
</Form>
</body>
</html>
<script language="JavaScript" type="text/javascript">
function MakeInitialCapital(str)
return str.toLowerCase().replace(/\b[a-z]/g, cnvrt);
function cnvrt()
return arguments[0].toUpperCase();
</script>
【问题讨论】:
你不应该在 标签之外有javascript代码。 widgEditor.js 文件中有什么?对话框说什么?此外,您不应该在 HTML 元素之外有 SCRIPT 元素。 Wilroz:请看:code.google.com/p/widgeditor ......下载框只是询问“你要下载listing_entry.html”。这是我粘贴代码的文件。 你是在本地网络服务器上运行它还是只是在浏览器中打开文件? 当我在浏览器中打开,当我在远程服务器上托管页面时,我会看到这个问题。 【参考方案1】:我会尝试通过验证器运行页面,但会立即脱颖而出:
-
头部中的元标记未关闭 - 如果这样做我会感到惊讶。
标记之外的 JavaScript - 这可能是你的罪魁祸首。
除此之外,我会确保 HTTP 标头 Content-Type 设置正确(应该是“text/html” - 还有一些其他合法值,但根据您的元标记判断,这就是您想要的作为)。 Firebug(firefox 插件)应该会让你看到这个。
【讨论】:
@fyjham:如果我想将 JavaScript 代码放在同一个文件中,它必须在哪里? +1,检查 HTTP 内容类型。我以前被这个烫伤了。 我已经给出了整个代码。需要什么“内容类型”改进? 嘿 RPK,我指的内容类型是在网络服务器提供的 HTTP 标头中。如果您安装 Firebug,您将允许您查看这些内容,它们实际上并不是 HTML 的一部分。就脚本标签而言,通常位于正文结束标签 (【参考方案2】:除了Form
而不是form
和script
之外的script
标记之外,代码看起来不错,但这些不应导致您描述的行为。它可能与 Web 服务器正在发送的 Content-Type
标头有关,并且在为请求提供服务时可能存在 Content-Disposition
标头。
如果你用一个简单的 HTML 页面替换你的标记会发生什么:
<html>
<head>
<title>test</title>
</head>
<body>
<div>test</div>
</body>
</html>
【讨论】:
我使用的是简单的 html 标签,不是吗。你还有什么意思? @RPK:这是服务器配置问题,与html代码无关。 @wds:什么类型的配置?【参考方案3】:您没有关闭head
中的初始meta
标记。这可能会导致一些问题。
改为:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
【讨论】:
文档类型是老式的 HTML,而不是 XHTML。原来的非自闭语法是正确的。 @bobince:授予!但它填充了 SO 处的语法突出显示,从而掩盖了标记中的其他可能错误 =) 尽管文档 can 可以在 Firefox 中打开,所以这可能是一个问题服务器正在为页面提供服务,例如 fyjham 建议的内容类型标头。以上是关于打开页面时,Firefox 会打开一个下载对话框的主要内容,如果未能解决你的问题,请参考以下文章
文件下载对话框何时打开? - HTML, Javascript
为啥文件打开对话框在单击 FireFox 中的按钮时打开两次