Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据页面中某个ID标记的存在有条件地加载JavaScript资源';什么是HTML文件? 情况_Javascript_Html_If Statement - Fatal编程技术网

如何根据页面中某个ID标记的存在有条件地加载JavaScript资源';什么是HTML文件? 情况

如何根据页面中某个ID标记的存在有条件地加载JavaScript资源';什么是HTML文件? 情况,javascript,html,if-statement,Javascript,Html,If Statement,在我帮助维护的web应用程序中,指定了一个更改,其中某个JavaScript脚本必须有条件地加载,这取决于页面上是否存在某个元素ID 问题 在没有外部图书馆的情况下,如何以符合当前公认做法的方式实现这一结果 当前方法理念 我目前的想法是做如下事情:;我希望得到一些指导,包括:这种方法是否可取和/或更好的替代方法 // identify head of html const htmlHead = document.querySelector('head'); // identify desir

在我帮助维护的web应用程序中,指定了一个更改,其中某个JavaScript脚本必须有条件地加载,这取决于页面上是否存在某个元素ID

问题 在没有外部图书馆的情况下,如何以符合当前公认做法的方式实现这一结果

当前方法理念 我目前的想法是做如下事情:;我希望得到一些指导,包括:这种方法是否可取和/或更好的替代方法

// identify head of html 
const htmlHead = document.querySelector('head');

// identify desired change condition and assign 
const desiredIdPresent = document.querySelector('#foo');
      
// assign script creation      
const activeScript = document.createElement('script');
      activeScript.type = 'text/javascript';


// conditions determine which script loads
if (desiredIdPresent){
    activeScript.src =  '/foo.js';
} else {
    activeScript.src = '/bar.js';
};

// insert desired script into document head
htmlHead.appendChild(activeScript);
以下是一些类似的情况和解决方案,我也将其作为参考:


问题是由于页面加载的同步方面。 您的代码似乎试图在加载前搜索
#foo

解决方案:将脚本标记放在身体的末尾。 例如:

<body>
    <div id="foo"></div>

    <script>
        // identify head of html 
const htmlHead = document.querySelector('head');

// identify desired change condition and assign 
const desiredIdPresent = document.querySelector('#foo');
console.log(desiredIdPresent);

// assign script creation      
const activeScript = document.createElement('script');
      activeScript.type = 'text/javascript';


// conditions determine which script loads
if (desiredIdPresent){
    activeScript.src =  '/foo.js';
} else {
    activeScript.src = '/bar.js';
};

// insert desired script into document head
htmlHead.appendChild(activeScript);
    </script>
    <!-- OR --> <script src="k.js"/>
</body>

//识别html的头
const htmlHead=document.querySelector('head');
//确定所需的变更条件并分配
const desireddpresent=document.querySelector(“#foo”);
console.log(DesiredPresent);
//分配脚本创建
const activeScript=document.createElement('script');
activeScript.type='text/javascript';
//条件决定加载哪个脚本
如果(希望出席){
activeScript.src='/foo.js';
}否则{
activeScript.src='/bar.js';
};
//将所需脚本插入文档头
htmlHead.appendChild(activeScript);
我没碰过你一厘米的皮肤