Heim  >  Fragen und Antworten  >  Hauptteil

javascript - 多页面引入同一 js 时,如何针对不同页面写加载后执行的代码?

假设有两个页面,a.html 和 b.html,都引用了 c.js,

其中 c.js 里面有两个函数,分别为 fun1 和 fun2。

此时,如果 a.html 需要在加载完成后执行 fun1, b.html 需要在加载完成后执行 fun2,

那么,如果不把加载后执行的动作写在页面里,而是写在共用的 c.js 里,应该如何写?

迷茫迷茫2749 Tage vor595

Antworte allen(5)Ich werde antworten

  • 阿神

    阿神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;
    }
    

    Antwort
    0
  • 黄舟

    黄舟2017-04-10 14:50:39

    我觉得给 a,b页面的body 加上完全不同的id,然后在 c.js来判断body的id 最好了。这样子跟location不管,页面名字不管怎么变都行。

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 14:50:39

    用location去判断

    Antwort
    0
  • PHP中文网

    PHP中文网2017-04-10 14:50:39

    可以试一下用 seajs,requirejs 这类模块加载的工具,把两个函数写成不同的模块当中,然后再按需加载。

    Antwort
    0
  • 怪我咯

    怪我咯2017-04-10 14:50:39

    用 location 去判斷的問題在於,有時候,a.html 和 a.Html?query=A#fragment 都能訪問,在比如 a/ 和 a/index.html...

    與其讓腳本自己考慮這些問題,不如爲每個頁面加上唯一標識符,比如 <body id="a.html">,省去了重複判斷的麻煩。

    Antwort
    0
  • StornierenAntwort