借鉴css的样式与内容分离的机制,可以将javascript实现的行为与html文档的结构和内容分离开来。这样可以为每一个网页预留退路,下面借用javascript dom编程艺术艺术中的例子,简单说明一下实现思路:
首先建立一个链接,home.html
<!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">
<title>Home.html</title>
</head>
<body>
<a href="popup.html">Example</a>
</body>
</html>
然后再写出这个链接的画面popup.html:
<!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=utf-8">
<title>popup.html</title>
</head>
<body>
弹出画面哦!
</body>
</html>
如果我们想让这个链接触发一个onclick事件,然后通过弹出窗口的方式显示popup.html的话,一般的做法是在home.html里添加一个方法,方法里面调用window.open方法弹出popup.html画面,然后通过onclick事件调用此方法。
但是这样写行为和文档的结构结合得很紧密,借鉴css的实现思路,我们是否可以将一个事件的处理和一个属性内容相关联,即建立一个挂钩,css里面是通过class属性,这里js的分离也可以用class来建立这个挂钩,具体实现方法如下。
首先我们修改home.html,为链接添加一个css属性如下
<a href="popup.html" class="popup">Example</a>
然后建立一个common.js,内容如下
/**
* @author jacktom
*/
window.onload = prepareLinks;
function prepareLinks(){
var links = document.getElementsByTagName("a");
for(var i=0; i<links.length; i++){
//支持ie浏览器
if (links[i].getAttribute("className")){
if(links[i].getAttribute("className") == "popup") {
links[i].onclick = function(){
popUp(this.getAttribute("href"));
return false;
}
}
} else if(links[i].getAttribute("class")){//支持ff浏览器
if(links[i].getAttribute("class") == "popup") {
links[i].onclick = function(){
popUp(this.getAttribute("href"));
return false;
}
}
}
}
}
function popUp(winURL) {
window.open(winURL,"popup","width=320,height=480");
}
js代码中的window.onload = prepareLinks;这句话的用途是当整个html加载完成之后,执行prepareLinks方法。这样就可以把我们对某个元素追加的事件加载到页面中。
最后在home.html中应用这个js,
<script type="text/javascript" src="event.js"></script>
完成以上步骤之后,在打开home.html之后,点击Example链接,将会按弹出页面的方式打开popup.html页面。
另外如果想在onload的时候加载多个方法的话,可以用如下的方法实现
首先追加addLoadEvent方法
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function'){
window.onload = func;
}else {
window.onload = function(){
oldonload();
func();
}
}
}
然后将需要在onload时调用的方法明传给addLoadEvent方法,如果有多个的时候,就多次调用:
addLoadEvent(prepareLinks);
//如果还有其他方法,可以继续追加
addLoadEvent(method1);
addLoadEvent(method2):
.
.
.
addLoadEvent(methodn);
分享到:
相关推荐
5. **CSS和JavaScript分离**:通常,CSS和JavaScript应分别放在`.css`和`.js`文件中。这可以通过引入链接或内联样式来实现。例如: ```html <script src="script.js"></script> ``` 6. **模板引擎和视图分离**:...
本书以简明易懂的方式循序渐进地教授读者如何通过非侵入式JavaScript分离行为与结构、添加动态效果以及确保向后兼容性。书中强调了三种核心原则:非侵入式JavaScript、渐进增强以及优雅降级。 #### 书籍内容概览 ...
JavaScript分离主要指的是将业务逻辑代码与视图层代码分开,这样可以提高代码的可读性和可维护性。在`pages\about\about.js`中,很可能包含了关于页面的特定逻辑,比如数据处理、事件处理函数等。而`main.js`作为...
为了提高图片库的可维护性和可扩展性,我们可以使用HTML与Javascript分离的方法。例如,我们可以将图片库的HTML结构和Javascript代码分离,使用Javascript来控制图片库的行为。 知识点六:使用“挂钩”机制 在文档...
Chartist.js是一个非常...CSS和JavaScript分离,因此代码比较简洁,使用就相对方便。 使用SVG格式,因此Chartist.js可以很灵活的在Web页面上应用。 响应式图表,支持不同的浏览器尺寸和分辨率。 支持自定义 SASS 架构。
【资源说明】基于大数据Vue和JavaScript的前后端分离小程序助农平台源码.zip基于大数据Vue和JavaScript的前后端分离小程序助农平台源码.zip基于大数据Vue和JavaScript的前后端分离小程序助农平台源码.zip基于大数据...
- 将HTML、CSS和JavaScript分离到各自的文件中,有助于提高代码的可维护性和可重用性。 - **代码复用**: - 创建可复用的组件和函数,减少重复编码工作。 - **代码规范**: - 遵循一致的代码规范和命名约定,...
基于JavaScript的前后端分离疫情数据可视化系统源码(毕设项目).zip 基于JavaScript的前后端分离疫情数据可视化系统源码(毕设项目).zip 基于JavaScript的前后端分离疫情数据可视化系统源码(毕设项目).zip 【备注】 ...
6. **HTML 与 JavaScript 分离**:jQuery 提供了一种方式将 JavaScript 代码与 HTML 结构分离,方便代码维护。 7. **丰富的插件库**:jQuery 社区提供了大量的插件,涵盖各种功能,如表单验证、导航、拖放效果、表格...
这种方法让HTML和JavaScript分离,更符合分离关注点的原则,有利于代码组织和维护。同时,它也提供了更强大的功能,如同时添加多个事件处理程序,或者只在捕获阶段或冒泡阶段处理事件。了解并熟练运用HTML事件是成为...
MVVM是Model-View-ViewModel的简写,是一种常用的软件架构模式,用于分离视图和数据模型。在MVVM模式下,单向绑定和双向绑定可以实现数据的同步。集成API和开发在线电子表格是全栈开发中的一部分内容。 总之,...
可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。 跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。 JavaScript脚本语言同其他语言一样...
本项目采用前后端分离开发模式,前端使用的技术有Javascript、jQuery、Art-template,后端使用技术有Flask、mysql、redis、celery等。文档全面,可快速部署。 可用于本科毕业设计,难度和工作量均较为适中。资料内...
基于JavaScript和Vue开发的前后端分离的大学运动会管理系统源码+项目说明.zip基于JavaScript和Vue开发的前后端分离的大学运动会管理系统源码+项目说明.zip基于JavaScript和Vue开发的前后端分离的大学运动会管理系统...
标题中的“让Javascript源代码从网页中分离出来”是指一种优化网页加载速度的技巧,它涉及到JavaScript代码的组织和浏览器的解析过程。JavaScript是一种广泛用于网页动态效果和交互的编程语言,当大量JavaScript代码...
如果需要将代码分离到外部文件,可以创建`.js`扩展名的文件,并在HTML中引用。例如: ```html <script src="mycode.js"></script> ``` 需要注意的是,JavaScript对大小写是敏感的,因此变量名和函数名的大小写必须...
第三部分主要讲解面向对象的设计原则和代码重构,包括面向对象的设计原则、单一职责原则、开放封闭原则、Liskov替换原则、接口隔离原则、依赖倒置原则、里氏替换原则、接口分离原则等,并介绍了一些常见的面向对象...
本项目是一款基于Vue、JavaScript等技术的校园互助平台前后端分离设计源码,包含879个文件,涵盖164个Java源文件、163个SVG图形文件、153个JavaScript文件、79个GIF图像文件、59个HTML文件、58个JPG图片文件、56个...
通过实际项目练习,学员将有机会将所学知识应用到真实的网页开发场景中,比如创建交互式表单、实现动态效果、构建前后端分离的应用等。 总之,"北大青鸟ACCP 5.0 JavaScript 课件"是一套全面的Web前端开发教程,...
12. **跨域通信**:JSONP、CORS和WebSocket是实现跨域数据交换的方法,对于前后端分离的开发模式非常重要。 13. **框架与库**:React、Vue、Angular等JavaScript框架提供了更高层次的抽象,帮助开发者更高效地构建...