Internet Explorer 8 中的 JQuery 问题
以下代码在 Firefox 中运行良好,但在 IE 中则不行。我已经尝试对标头和脚本调用字符串进行各种调整,但是没有任何方法可以使 IE 运行脚本。此外,IE 中的所有安全功能均已关闭。
下面的代码有什么问题吗?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Smartube</title>
<link href="css/default.css" rel="stylesheet" type="text/css" />
<script src="jquery.js" type="text/javascript"></script>
<script src="tubeutil.js" type="text/javascript"></script>
<script src="init.js" type="text/javascript"></script>
<script type="text/javascript">
function formfocus() {
document.getElementById('1').focus();
}
window.onload = formfocus;
</script>
</head>
<body>
<div class="wrapper">
<img class="displayed" src="gfx/sb.png">
<form class="blocks" action="" method="get">
<p><input type="text" class="search" id="1" /></p>
<p><input type="Submit" class="btn" value="" /></p>
<ul class="reset autocomplete"></ul>
</form>
<ul class="reset videos"></ul>
</div>
</body>
</html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
有件事让我觉得错误,但我无法知道这是否是您问题的原因(我看不到您的 JavaScript 的其余部分)。
您缺少有效的文档类型,因此 Internet Explorer 处于怪异模式,这非常糟糕!
将其添加为第一行:
One thing strikes me as wrong, but there's no way I can know if it's the cause of your problems (I can't see the rest of your JavaScript).
You're missing a valid doctype, so Internet Explorer is in Quirks Mode, which is very bad!
Add this as the very first line:
正如您可以阅读关于这个问题
所以“1”不是一个有效的ID。将该 id 更改为“id1”或“searchfield”以使脚本在所有浏览器中运行。
作为旁注:正如其他人所说,您实际上并没有在这里使用 jqery,但这不是问题所在。
as you can read on this question
so "1" is not a valid id. change that id to "id1" or "searchfield" to make the script work in all browsers.
as a sidenote: as others said, you aren't actually using jqery here, but this isn't the problem.
第一:
id="1"
不是有效的 ID。第二:既然你使用的是 jQuery,我建议你使用 jQuery (!):
一旦页面运行,就会运行
$('#that-form-element').focus();
(DOM) 已准备就绪。First:
id="1"
is not a valid ID.Second: Since you're using jQuery, I'd suggest that you use jQuery (!):
That will run
$('#that-form-element').focus();
once the page (DOM) is ready.id
指定 HTML 文档中元素的唯一 ID。命名规则:
id
Specifies a unique id for an element within an HTML Document.Naming rules:
你根本没有使用jquery。
使用这个符号:
而不是所有的 javascript
You are not using jquery at all.
use this notation :
instead of all your javascript
您的代码并不是真正的 jQuery,而是直接的 javascript,但您的问题是 W3C 标准要求 ID 以字母开头(请参阅 http://www.w3schools.com/tags/att_standard_id.asp)。
您可以将脚本编写为 jQuery,如下所示:
编辑:好的,我刚刚在 IE 中测试了以下内容:
HTML:
JS:
这适用于 IE9,所以我认为它也应该适用于 8。测试版本在这里:http://jsbin.com/ipezey/edit#javascript,html
另外,根据三十点的回答,此测试版本有 HTML 5 文档类型,而您的版本没有。这可能是您问题的根源。
Your code isn't really jQuery, it's straight javascript, but your problem here is that the W3C standard requires an ID to begin with a letter (see http://www.w3schools.com/tags/att_standard_id.asp).
You could write your script as jQuery like so:
EDIT: OK, I've just tested the following in IE:
HTML:
JS:
That works in IE9, so I think it should work in 8 too. Test version is here: http://jsbin.com/ipezey/edit#javascript,html
Also, as per thirtydot's answer, This test version has an HTML 5 doctype, whereas your version has none. This could be the root of your problem.