Html Doctype标签影响javascript
Html Doctype tag affects javascript?
我注意到html/javascript的奇怪行为。
我有这个javascript代码
window.onload = function(){
var pmap = document.getElementById('pmap');
var marker_sl = document.getElementById('marker_sl');
var marker_uk = document.getElementById('marker_uk');
marker_sl.style.left = pmap.width * 70.5 / 100;
marker_sl.style.top = pmap.height * 48 / 100;
marker_uk.style.left = pmap.width * 44 / 100;
marker_uk.style.top = pmap.height * 14.5 / 100;
};
当我添加
时它不起作用<!DOCTYPE html>
或
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
标签。否则按预期工作
我在stackoverflow中发现了这个问题。但它似乎没有帮助。为什么会这样。你能告诉我吗?
这是我的整个HTML文件
<!DOCTYPE html>
<html>
<head></head>
<body>
<article>
<img src="images/price_map.jpg" id="pmap" />
<a href="#" id="marker_sl" style="position:absolute;display:block;"><img src="images/marker.png" /></a>
<a href="#" id="marker_uk" style="position:absolute;display:block;"><img src="images/marker.png" /></a>
</article>
</body>
<script type="text/javascript">
window.onload = function(){
var pmap = document.getElementById('pmap');
var marker_sl = document.getElementById('marker_sl');
var marker_uk = document.getElementById('marker_uk');
marker_sl.style.left = pmap.width * 70.5 / 100;
marker_sl.style.top = pmap.height * 48 / 100;
marker_uk.style.left = pmap.width * 44 / 100;
marker_uk.style.top = pmap.height * 14.5 / 100;
};
</script>
</html>
解决代码<!DOCTYPE html>
<html>
<head></head>
<body>
<article>
<img src="images/price_map.jpg" id="pmap" />
<a href="#" id="marker_sl" style="position:absolute;display:block;"><img src="images/marker.png" /></a>
<a href="#" id="marker_uk" style="position:absolute;display:block;"><img src="images/marker.png" /></a>
</article>
</body>
<script type="text/javascript">
window.onload = function(){
var pmap = document.getElementById('pmap');
var marker_sl = document.getElementById('marker_sl');
var marker_uk = document.getElementById('marker_uk');
marker_sl.style.left = (pmap.width * 70.5 / 100)+"px";
marker_sl.style.top = (pmap.height * 48 / 100)+"px";
marker_uk.style.left = (pmap.width * 44 / 100)+"px";;
marker_uk.style.top = (pmap.height * 14.5 / 100)+"px";
};
</script>
</html>
left
和top
的CSS属性需要一个单位,如"px"。
文档声明不应该对javascript有任何影响。发布html文件,或者打开firebug,看看有哪些书使用文档声明运行它。
相关文章:
- Javascript em根据窗口/视口尺寸调整大小,不影响文档样式的text/css
- javascript getAttribute是否会影响性能或触发布局
- Javascript:当同时按下两个键时,留下其中一个也会影响另一个的听众
- JavaScript-在不影响索引的情况下将元素插入数组
- 更改复选框不影响javascript
- 阻止Javascript事件影响子元素
- javascript 函数返回的语法(空格)是否会影响结果
- 行之间有空格会影响 JavaScript 代码的性能吗?
- 数字精度如何影响 JavaScript 的性能,或者会影响性能
- 影响JavaScript / CSS的HTML空间格式
- 当 Node.js 调用 HTML 时,外部 Javascript 和 CSS 不会对 HTML 产生影响
- 是受(GWT)基类中方法数量影响的JavaScript对象的大小
- CSS显示会影响jQuery/Javascript
- Javascript不会影响HTML元素
- JavaScript字符串串联中null的影响
- 为什么全局变量没有't似乎受到内部作用域(Javascript)的影响
- 附加不受 javascript 影响的 jQuery 值
- 平滑滚动 JavaScript 影响模态功能
- Javascript影响两个下拉菜单
- 如何使javascript影响表中的所有值