问题标签 [yepnope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
260 浏览

javascript - 可以在同一页面上的多个实例中使用 yepnope(如纯异步资源加载器)?

像这样使用 Yepnope 是否可以,通过为每个小部件设置一个加载实例,我最终会在给定页面上获得 Modernizr.load aka Yepnope 的多个实例?可能是 10-20 个,有些可能会加载相同的脚本。

我认为最好使用另一个更适合依赖项等的资源加载器,比如 RequireJS。

我的问题是奇怪的错误,在 IE8 中只发生过几次。几乎就像它与每个 Modernizr.load 实例的执行顺序和脚本/回调的加载有关。

0 投票
2 回答
1473 浏览

javascript - 在 Modernizer / yepnope.js 中使用 Drupal.settings.basePath 加载

我目前正在 Acquia 上开发 drupal 站点。使用 git 并在本地工作对我来说是一个新的工作流程。在本地构建并尝试使用 Modernizr load / yepnope 时,我的 script.js 文件中的 JS 通常如下所示。

所以这在我的机器上本地工作,但是当我提交我的更改并推送到我的 acquia 开发服务器时,加载脚本的文件路径不正确,因为我猜它不是相同的设置。

http://mysite.devcloud.acquia-sites.com/mysite/docroot/sites/all/themes/theme/js/libs/polyfill.js

它必须是下面的,URL 中没有 mysite/docroot。

http://mysite.devcloud.acquia-sites.com/sites/all/themes/theme/js/libs/polyfill.js

这让我想到了 Drupal.settings.basePath。如果我把它打印出来,它会在我的本地设置上给我 /mysite/docroot/ 。如果我在开发服务器上执行此操作,它会打印出不同的内容(可能只是 / )。

所以我作为业余爱好者假设我可以做这样的事情..(原谅可怜的样本,我知道它可以做得更好)

这当然行不通。只是返回 query1 没有定义。

所以我确信在我的许多尝试中都存在错误,所以如果有人可以向我提出一些建议,无论是与工作流相关的还是如何修复我的设置/代码,那就太好了。

谢谢

0 投票
1 回答
2796 浏览

javascript - 使用 Angular JS 和脚本加载器 Modernizr

我的应用程序以前大量使用 Modernizr 来加载脚本和 shim,我在加载 Angular JS 时遇到了一段时间的问题。在 JQuery 之后立即使用 Modernizr 加载会产生错误;没有模块:(模块名称);

但是,当我在脚本加载之前将 JQuery 和 Angular 移到顶部时,使用 JQuery(内部角度控制器脚本)的行将失败,尽管它已在角度脚本之前加载。我正在使用下面的脚本在加载modernizr 后延迟内联脚本,它将在modenizr 完成加载所有脚本后执行。当我评论关闭脚本加载行时,一切都很好,但当前页面上的内联脚本将失败。

0 投票
0 回答
262 浏览

jquery - 在 yepnope 之外加载 jQuery 插件

我正在使用 yepnope 加载 jquery 和一堆插件。

我使用以下方法修复了已准备好的“问题”:

但在某些页面中,我需要通常使用脚本标签加载一些插件:

我得到了错误:

如果我在加载这个 js 时使用 yepnope,我知道它会起作用,但我需要使用脚本标签,是否有任何解决方法来解决这个问题,就像我对 onready 所做的那样?

0 投票
1 回答
1133 浏览

javascript - Javascript (Modernizr/YepNope.js) 语法和用法

我在我的网站上使用了一个自定义版本的 Modernizr(仅包括我需要测试的内容)。也就是说,我在 JavaScript 中挣扎,我能做的最好的事情就是剪切、粘贴和祈祷。

我使用 Modernizr.load 来异步加载资源,但我让它工作的唯一方法是去http://motherffinghsl.com/并复制第 73 到 86 行(我在 HTML5 样板视频教程中看到它使用过)...我将发布我的版本:

自从我这样做以来,Modernizr 的 YepNope 部分在http://yepnopejs.com/上的文档得到了极大的改进,但我有几个问题。

1.) 如果我删除了 < script > 标签,我可以直接将它粘贴到我的 Modernizr 文件中吗(它目前就在我页面的结束 body 标签之前)?

2.) 如果我想知道何时/如何/什么被使用,我需要使用 console.log(下面的示例)吗?

来自 yepnope 文档:

在文档的某些地方,我看到他们使用“警报”,但它似乎唯一可能发出警报的地方是我的服务器上的记录,这似乎是 console.log 正在做的事情。这是正确的,只是一种不同的措辞方式,还是两者之间有区别?

如您所知,我是 JS 菜鸟,我真正想要的是能够获得有关我的流量有多少支持或不支持给定功能的使用统计信息。

注意:我在这里阅读了所有似乎相关的内容,几周前提出了一个过于广泛的问题,其中包括这个问题(实际上是将 6 个问题拼成一个......对不起)。

谢谢

更新:无论出于何种原因,使用上面显示的“协议相对”URL(省略 http:)给我带来了很多 404 错误问题(有时被解释为相对链接),所以我最终添加http:了资源链接。

0 投票
1 回答
434 浏览

yepnope - Yepnope js多个文件加载

我有一个 js 文件列表:

  • 1.js
  • 2.js
  • 3.js
  • 4.js
  • 5.js
  • 6.js

ETC

我想按订单加载它,从 1 到 6。如果我这样做:

我将编码嘲笑很多代码。有没有人有解决方案?

0 投票
2 回答
7141 浏览

google-chrome - Chrome 说:资源解释为图像,但使用 MIME 类型文本/javascript 传输:“"

在 webapp 中,我yepnope.js用作加载器(主要是因为它能够加载 CSS 和 JS)。

但是,对于yepnope加载的任何内容,Chrome 都会发出警告:

资源解释为图像,但使用 MIME 类型文本/javascript 传输:<some js file>

或者

资源解释为图像,但使用 MIME 类型 text/css 传输:<some css file>

就执行而言,这不会造成任何问题,但我不明白的是 Chrome 如何将纯 JS 或 CSS 文件解释为 IMAGE。

以及如何解决这个问题?

此外,无论从 YepNope 外部加载什么,都可以在没有任何警告的情况下完美加载。

PS :: 我没有启用任何扩展。唯一启用的是PageSpeed

0 投票
1 回答
929 浏览

javascript - Modernizr 会加载脚本一次吗?

我正在使用 Modernizr 的加载器(集成的 yepnope.js)有条件地加载 javascript 代码。这是我的代码:

它可以工作,但 FireBug 和 Google Developers 工具中的 Network 选项卡显示它加载了两次 get-native-geo-data.js。我在 native-geo-data.js 中添加了一个 console.log(),并且只打印了一次消息。那么是什么让 FireBug 和 Dev Tools 报告两个网络调用都返回 200,大小为 3K?

这是 Firebug 报告每个 GET 的响应标头的方式(它们是相同的):

通过 Charles 监控工具运行它后,我看到了相同的结果 - 该函数被调用了两次。那么错误在哪里——在 Modernizr 中,在 yepnope 中,还是在我的脑海中?

0 投票
1 回答
332 浏览

jquery - 使用 Yepnope.js 有条件地加载 Fancybox 资源

我正在尝试有条件地加载 Fancybox js 和 css 代码,并仅在元素存在并且我在特定页面中时才在元素上执行它。到目前为止,我一直在尝试以下代码:

我得到一个Uncaught TypeError: Object [object Object] has no method 'fancybox'

我猜 jquery 运行正常,资源 jquery.fancybox.pack.js 被正确加载。我的实施有什么问题?

0 投票
3 回答
323 浏览

javascript - 如何指定 yepnope.js 放置加载脚本的位置?

我有点 JS 菜鸟。

这是一个粗略的例子,但它说明了我的问题。yepnope 运行良好,但它在堆栈顶部添加了 yep 脚本 (jquery.selectBoxIt.min.js)。问题是如果将加载的脚本放在它在 JQuery 库之前加载的堆栈的顶部。问题是它依赖于 jQuery 才能运行。我查看了 yepnope 文档,但没有看到任何提及它的内容。

这是我的代码(在我的文档底部: