使用内容安全策略(CSP)的页面特定JavaScript

Muh*_*eed 6 html javascript performance bundling-and-minification content-security-policy

我想在整个网站上使用内容安全策略(CSP).这要求所有JavaScript都在单独的文件中.我共享了所有页面使用的JavaScript,但还有一些特定于页面的JavaScript,我只想为特定页面运行.处理页面特定JavaScript以获得最佳性能的最佳方法是什么?

我可以想到解决此问题的两种方法是使用特定于页面的JavaScript包或带有switch语句的单个JavaScript包来执行特定于页面的内容.

Ism*_*ooq 2

有很多方法可以执行页面特定的 javascript

选项 1(通过课堂检查)

将类设置为 body 标签

<body class="PageClass">
Run Code Online (Sandbox Code Playgroud)

然后通过 jQuery 检查

$(function(){
  if($('body').hasClass('PageClass')){
    //your code
  }
});
Run Code Online (Sandbox Code Playgroud)

选项 2(通过开关盒检查)

var windowLoc = $(location).attr('pathname'); //jquery format to get window.location.pathname

switch (windowLoc) {
    case "/info.php":
        //code here
        break;
    case "/alert.php":
        //code here
        break;
}
Run Code Online (Sandbox Code Playgroud)

选项 3 通过函数检查

在函数中制作所有页面特定脚本

function homepage() {
    alert('homepage code executed');
}
Run Code Online (Sandbox Code Playgroud)

然后在特定页面上运行函数

homepage();
Run Code Online (Sandbox Code Playgroud)