相关疑难解决方法(0)

浏览器对<body>内的<script>的反应不同

这是我无法理解的问题.看看这个JS代码:

<!DOCTYPE HTML>
<html>

<head>
  <meta charset="utf-8">
</head>

<body>
  <p>The Beginning...</p>
  <script>
    alert('Hello, Wolrd!');
  </script>
  <p>...The End Of Doc</p>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

所以问题是我不明白为什么The Beginning<script>标签之前没有加载/可见段落.在几乎所有的教程中,它解释了浏览器在满足脚本之前加载所有HTML,然后当脚本满足时,浏览器开始在脚本的编译模式下工作,然后当脚本结束时,浏览器以HTML模式返回.

但实际上它似乎表现不同,因为The Beginning文本仅脚本警报出现:

在此输入图像描述

可以请某人解释为什么会发生这种情况?


PS:只有Firefox的行为与教程中描述的相同.

html javascript

9
推荐指数
1
解决办法
140
查看次数

如何在页面加载之前执行Javascript函数?

我正在使用隐藏字段'Isjsenabled'来检测客户端的Javascript是启用还是禁用.如果启用了Javascript,则会触发Javascript函数,并将隐藏字段的值设置为1.

我想检查服务器端Page_load的隐藏值.但问题是在页面加载后Javascript被触发.

你有什么建议吗?

Html部分

<script type="text/javascript">
    $(function() {
        $("#<%= Isjsenabled.ClientID %>").val(1);
    }); 
</script>

<input id="Isjsenabled" runat="server" value ="0"  type="hidden"  />
Run Code Online (Sandbox Code Playgroud)

部分背后的代码

protected void Page_Load(object sender, EventArgs e) {                
    HtmlInputHidden hdn = this.FindControl("Isjsenabled") as HtmlInputHidden;
        if (hdn != null)
            if (hdn.Value != null && hdn.Value == "0")
                Helper.SetCookie("IJE", "0");
            else
                Helper.SetCookie("IJE", "1");
}
Run Code Online (Sandbox Code Playgroud)

.net javascript browser asp.net

7
推荐指数
1
解决办法
2万
查看次数

“对象不支持此属性或方法” IE10/11

随着 ES6 的出现,我渴望放弃 jQuery 并在我的网站构建中使用原生 JS,以保持它们的快速和轻量。也是为了提高我的 JS 技能,因为我是直接使用 jQuery 的人之一。

我正在构建一个很小的库,以便在函数中使用更常用的 javascript 以保持文件较小。

function $(elm) {
    var elm = document.querySelectorAll(elm);

    this.forEach = function(f) {
        [].forEach.call(elm, f);
    }

    return elm;
}

function slider() {
    $(".slider").forEach(function() {
        alert("Hello");
    });
}
slider();
Run Code Online (Sandbox Code Playgroud)

这在 Chrome 等中效果很好。但在 IE10/11 中我收到错误

对象不支持此属性或方法“forEach”

指的是 $(".slider").forEach

有任何想法吗?

javascript internet-explorer

1
推荐指数
1
解决办法
1390
查看次数

检查body标签时出现意外的JavaScript无限循环

我打算使用ASAP脚本来检查是否加载了body标签,但它会导致整个页面冻结.

这里是:

while (!document.body)
    if (document.body) console.log('loaded');
Run Code Online (Sandbox Code Playgroud)

这当然在所有情况下都无法正常工作,但我很困惑为什么这会变成无限循环并冻结页面.

javascript preloader infinite-loop document-body

0
推荐指数
1
解决办法
129
查看次数