小编Fcz*_*bkk的帖子

异步库中`root = ...`代码的目的是什么?

Async库中有这段代码:

if (typeof window == 'object' && this === window) {
    root = window;
}
else if (typeof global == 'object' && this === global) {
    root = global;
}
else {
    root = this;
}
Run Code Online (Sandbox Code Playgroud)

所有这些代码都有什么理由吗?为什么没有作者才使用root = this

第一个条件仅在何时this === window,因此root = window并且root = this应该是等效的.第二种情况也是如此,root = global应该相当于root = this.

我在这里错过了什么吗?

javascript

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

YouTube常规播放器中的loadVideoById()(不是无边框)

我在网页上有一个YouTube播放器.我需要动态更改此播放器播放的视频.

使用YouTube的无边框播放器(相对)很简单.它有loadVideoById()完美的工作方法.问题是,无边框播放器没有任何控件(播放/暂停等).在常规YouTube播放器拥有这一切,但它不具备的loadVideoById()方法.

有没有办法将常规玩家的控制包含在无边框播放器中,或者loadVideoById()在常规播放器中实现方法?

谢谢.

javascript youtube api

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

检测是否正在加载新页面

有没有办法通过JavaScript检测是否正在加载新页面.让我给你举个例子.

我在这个链接上加载了另一个页面:

<a href='http://google.com/'>Click here</a>
Run Code Online (Sandbox Code Playgroud)

单击此处后没有页面加载:

<a href='#anchor'>Click here</a>
Run Code Online (Sandbox Code Playgroud)

此处没有页面加载:

<a href='javascript:void(0);'>Click here</a>
Run Code Online (Sandbox Code Playgroud)

是的,这是一个页面加载.但该href属性不是正在加载的页面的URL:

<a href='javascript:void(document.location="http://google.com/");'>Click here</a>
Run Code Online (Sandbox Code Playgroud)

这在href中有URL,但它不会加载页面.这个onclick属性只是为了说明问题.在现实世界中,onclick事件可能由事件侦听器附加并由event.preventDefault()代码中的其他位置取消:

<a href='http://google.com/' onclick='return false;'>Click here</a>
Run Code Online (Sandbox Code Playgroud)

现在想象一下,下一页需要很长时间才能加载.我需要的是在点击链接后检测是否正在加载新页面的方法.或者在表单提交后.或者在任何可能导致页面加载的操作之后.我知道要观看哪些操作,但我无法确定它们是否必然会触发页面加载.

它甚至可能吗?如果是这样,怎么样?

谢谢.

javascript

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

标签 统计

javascript ×3

api ×1

youtube ×1