繁体   English   中英

将 HTML 装入<div></div><div id="text_translate"><p><em><strong>小提琴</strong>: <a href="https://jsfiddle.net/x9ghz1ko/" rel="nofollow noreferrer">https://jsfiddle.net/x9ghz1ko/</a> (带评论。)</em></p><p> 我有一个<strong>HTML 文档</strong>,在这个文档里面,有<strong>两个部分</strong>: &lt;section class="desktop_only"&gt;和&lt;section class="mobile_only"&gt; - 在代码中,在这些部分之前,有一个<strong>脚本</strong>,这个脚本应该<strong>删除两个部分之一</strong>,但问题是:为此,我必须将脚本放在部分之后,但我不能这样做,因为部分内有更多脚本,我必须删除它们在他们跑之前。</p><p> 我的代码的简化版本:(……不工作。) </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script&gt; 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. } &lt;/script&gt; &lt;section class="desktop_only"&gt; &lt;script src="example.js"&gt;&lt;/script&gt; &lt;script&gt; console.log("desktop_only") &lt;/script&gt; &lt;div&gt; desktop &lt;/div&gt; &lt;/section&gt; &lt;section class="mobile_only"&gt; &lt;script src="example.js"&gt;&lt;/script&gt; &lt;script&gt; console.log("mobile_only") &lt;/script&gt; &lt;div&gt; mobile (Delete this.) &lt;/div&gt; &lt;/section&gt;</pre></div></div><p></p><p> <strong>也许一种解决方案是:</strong>我有一个空的&lt;div&gt; ,称为".platform_dependent" ,我有两个外部文件,称为: desktop_only.something和mobile_only.something然后我将这些文件的内容加载到: platform_dependent.innerHTML ...但我不知道该怎么做?</p></div>

[英]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.somethingmobile_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM