我很欣赏这在很大程度上取决于要求,但我对将事件附加到外部元素还很陌生。
我想知道识别页面特定脚本和事件并最小化 HTML 模板中的 JS 的最佳实践。这是我的第一次尝试:
- 为页面添加全局变量
- 在外部脚本中检测该变量并基于它设置事件
内联JS:
<script>
var gc_pageType = 'report';
</script>
外部 JS:
// report functions
function reportFunctions() {
lo_element = document.getElementById('firstname');
addEventHandler(lo_element, 'blur', alertOnBlur);
}
function alertOnBlur() {
alert('worked');
}
// general functions
function pageScripts() {
switch(gc_pageType) {
case 'report':
reportFunctions();
}
}
if(window.addEventListener){
window.addEventListener('load',pageScripts,false); //W3C
}
else{
window.attachEvent('onload',pageScripts); //IE
}
function addEventHandler(elem,eventType,handler) {
if (elem.addEventListener) {
elem.addEventListener (eventType,handler,false);
}
else if (elem.attachEvent) {
elem.attachEvent ('on'+eventType,handler);
}
}
即使内容很少,也可以将其拆分为单独的文件,或者将 onload 标签添加到 body 标签中是否更有效?任何输入将不胜感激!
任何输入都会很棒。