假设有两个页面,a.html 和 b.html,都引用了 c.js,
其中 c.js 里面有两个函数,分别为 fun1 和 fun2。
此时,如果 a.html 需要在加载完成后执行 fun1, b.html 需要在加载完成后执行 fun2,
那么,如果不把加载后执行的动作写在页面里,而是写在共用的 c.js 里,应该如何写?
阿神2017-04-10 14:50:39
可以用 window.location.href 判断,
也可以在 a.html b.html 分别定义一个变量,c.js 通过变量判断
a.html
ns.pageName = 'a'
b.html
ns.pageName = 'b'
c.js
switch(ns.pageName) {
case 'a':
// do something for a.html ...
break;
case 'b':
// do something for b.html ...
break;
}
黄舟2017-04-10 14:50:39
我觉得给 a,b页面的body 加上完全不同的id,然后在 c.js来判断body的id 最好了。这样子跟location不管,页面名字不管怎么变都行。
怪我咯2017-04-10 14:50:39
用 location 去判斷的問題在於,有時候,a.html 和 a.Html?query=A#fragment 都能訪問,在比如 a/ 和 a/index.html...
與其讓腳本自己考慮這些問題,不如爲每個頁面加上唯一標識符,比如 <body id="a.html">
,省去了重複判斷的麻煩。