[英]load HTML into <div>
小提琴: https://jsfiddle.net/x9ghz1ko/ (带评论。)
我有一个HTML 文档,在这个文档里面,有两个部分: <section class="desktop_only">
和<section class="mobile_only">
- 在代码中,在这些部分之前,有一个脚本,这个脚本应该删除两个部分之一,但问题是:为此,我必须将脚本放在部分之后,但我不能这样做,因为部分内有更多脚本,我必须删除它们在他们跑之前。
我的代码的简化版本:(……不工作。)
<script> device = "desktop"; // This could be either: "desktop", or: "mobile" if(device === "desktop"){ document.querySelector(".mobile_only").remove(); // Not doing anything. } else { document.querySelector(".desktop_only").remove(); // Not doing anything. } </script> <section class="desktop_only"> <script src="example.js"></script> <script> console.log("desktop_only") </script> <div> desktop </div> </section> <section class="mobile_only"> <script src="example.js"></script> <script> console.log("mobile_only") </script> <div> mobile (Delete this.) </div> </section>
也许一种解决方案是:我有一个空的<div>
,称为".platform_dependent"
,我有两个外部文件,称为: desktop_only.something
和mobile_only.something
然后我将这些文件的内容加载到: platform_dependent.innerHTML
...但我不知道该怎么做?
我认为DOMContentLoaded是您正在寻找的。 此事件在初始 HTML 文档已完全加载时触发。
<script> var device = "desktop"; // This could be either: "desktop", or: "mobile" document.addEventListener("DOMContentLoaded", function(event) { if(device === "desktop") document.querySelector(".mobile_only").remove(); // Not doing anything. else document.querySelector(".desktop_only").remove(); // Not doing anything. }); </script> <section class="desktop_only"> <script src="example.js"></script> <script> console.log("desktop_only") </script> <div> desktop </div> </section> <section class="mobile_only"> <script src="example.js"></script> <script> console.log("mobile_only") </script> <div> mobile (Delete this.) </div> </section>
您可以更改该 div 的显示属性以隐藏它们。 在移动或桌面功能中执行此操作,并根据window.innerWidth
调用它们
<div class="mobileonly">
mobile
</div>
<div class="desktoponly">
desktop
</div>
<script>
var mobileDiv = document.querySelector(".mobileonly")
var desktopDiv = document.querySelector(".desktoponly")
function mobile() {
console.log("mobile");
mobileDiv.style.display = "block"
desktopDiv.style.display = "none"
}
function desktop() {
console.log("desktop");
mobileDiv.style.display = "none"
desktopDiv.style.display = "block"
}
let deviceWidth = window.innerWidth
if (deviceWidth > 800) {
desktop()
} else {
mobile()
}
</script>
这就是我最终做的事情:
在我的 HTML 的<head>
中,有一个小脚本可以检查设备是否连接了鼠标之类的东西,如果有: userOnMobile = false
,如果没有: userOnMobile = true
。
所有链接到 HTML 并且只能在桌面或移动设备上运行的外部脚本,首先检查userOnMobile-variable
,然后执行它们的操作,或者什么也不做。
感谢大家的投入::) – 西蒙
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.