`
lixinlixin2008
  • 浏览: 152388 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

safari的一个怪异问题 (应该和javascript加载顺序有关)

阅读更多
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=GB2312"/>
<meta name="keywords" content="SE_JsTree"/>
<title>使用选择城市对象</title>
<style type="text/css">v\:*{behavior:url(#default#VML);}</style>

<script src="ajax.js"></script>
<script src="place.js"></script>
<script language="javascript">

alert(window.SE_ajax)
alert(window.SE_place)


</script>
</head>
<body>
	<div style="position:absolute;left:620px;">

	</div>
</body>
</html>

<!--
问题描述, 一个 ajax.js  一个place.js

ajax.js 内容为:   
function AAA(aa){
    alert(["ajax",aa])
    window.SE_ajax = function(){
        alert("SE_ajax");
    }
}
AAA();


place.js 内容为:
document.writeln('<script language="javascript" src="ajax.js" type="text/javascript" charset="gb2312"></script>');
function AAA(){
    alert(["place"])
    window.SE_place = function(){
        alert("SE_place");
    }
}
AAA(456);


会发现一个怪异的现象 place.js中调用的AAA() 竟然是ajax.js中的!!! 其他浏览器没有此问题

解决方法:
1, 页面中的<script src="ajax.js"></script>去掉
2,  (function(){})()  采用这种方式


总结: js是单线程的, 情况发生的原因应该是place.js刚刚定义完AAA(),然后ajax.js加载进来了,把前面的AAA()覆盖了...
-->




0
0
分享到:
评论

相关推荐

    javascript面试题

    **14、一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。** - 使用懒加载技术。 - 图片压缩减小文件大小。 - 采用响应式图像格式(如 WebP)。 - CDN 加速。...

    前端面试基础知识汇总

    10. 锚点的作用和创建方法:锚点通过标签的name属性定义,用以在页面内创建一个可以跳转的链接点,方便用户快速定位页面内容。 11. 浏览器测试和内核:在进行前端开发时,需要在多个浏览器上测试页面,常见的浏览器...

    前端面试精华(知识点、示例讲解)

    - **BFC(Block Formatting Context)**:一个独立的渲染区域,解决浮动元素对后续元素的影响等问题。 - **HTML5新特性**: - **多媒体支持**:`&lt;video&gt;`、`&lt;audio&gt;`标签支持直接在网页上播放音频视频。 - **语义化...

    2016前端面试题及答案.pdf

    XHTML文档必须有一个根元素。 3. **DOCTYPE的作用**:DOCTYPE声明文档所使用的HTML或XHTML版本,可以触发浏览器进入严格模式或混杂模式。例如,&lt;!DOCTYPE html&gt;会将页面解析为HTML5标准模式,而旧的DOCTYPE如&lt;!...

    qq浮动代码

    QQ浮动代码是一种网页设计技术,主要用于在网页的角落或侧边显示一个固定的QQ在线聊天窗口,使得用户在浏览网页时可以方便地与网站管理员或客服人员进行即时沟通。这种技术通常涉及HTML、CSS以及可能的JavaScript,...

    5月最新大厂前端高频核心面试题.pdf

    8. 标签的defer和async属性都可以让脚本异步加载,但async是完全异步加载并在加载完毕后立即执行,而defer则是等整个文档解析完毕后按照在文档中出现的顺序执行。 9. data-属性用于存储页面的自定义数据,可以用于...

    web前端面试题

    一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。** - 使用懒加载技术、压缩图片大小、使用 WebP 格式、采用 CDN 加速等方法可以显著提高图片加载速度。 ...

    前端复习资料.pdf

    48. **reset CSS文件**: 重置CSS用于清除默认样式,normalize.css是一个替代方案,与reset相比更加轻量,同时修复了一些浏览器的默认设置。 49. **Sass/LESS**: 都是CSS预处理器,提供了变量、混合、继承等编程式...

    web前端面试宝典

    **区别**:加载顺序和优先级。 ##### 32. 盒子模型 - **基本概念**:由content、padding、border、margin四部分组成。 - **计算公式**:总宽度 = width + padding * 2 + border * 2 + margin * 2。 - **应用场景**...

Global site tag (gtag.js) - Google Analytics