Tag: requirejs

在Require.js完成设置配置后执行javascript脚本

我正在创建一个Phonegap应用程序。 我正在使用Require.js并正在实现推送通知。 在我的index.html文件中,我有: app.initialize(); app.js定义Require.js模块的基本URL并启动路由器。 Index.html定义了“deviceready”监听器。 问题是在index.js中,我需要对Require.js模块进行压缩,比如Jquery。 但是,例如,在index.js中,如果我这样做: initialize: function() { require([“jquery”], function () { }); }, 我收到错误: Uncaught Error: Script error for: jquery http://requirejs.org/docs/errors.html#scripterror at file:///android_asset/www/js/require.js:8 Uncaught Error: Load timeout for modules: backbone http://requirejs.org/docs/errors.html#timeout at file:///android_asset/www/js/require.js:8 我认为这是因为在app.js仍在设置路径等时调用了index.js。我需要在app.js完成后执行index.js。 我不能用: $(document).ready(function() { app.initialize(); }); 因为Jquery作为模块加载所以会抛出错误。 我也无法将index.js作为模块加载,因为我在另一个SO问题中写了一个问题。 任何想法我能做什么?

与RequireJS的冗余依赖项

我的问题是具有指向同一JS库的冗余RequireJS依赖项。 引用的库是jQuery UI ,它在内部和外部库Gridstack引用 ,这导致了这个问题。 内部和外部引用都应指向一个文件jquery-ui.js 。 如何配置RequireJS(即在main.js )来处理这些引用,而不对任何现有的模块/库进行任何更改? JQuery UI v1.11.2 – 我的JQuery UI分发(单个文件) Gridstack 0.2.5-dev – 将其引用为jquery-ui/core , jquery-ui/widget , jquery-ui/mouse , jquery-ui/draggable和jquery-ui/resizable 我jquery.ui内部使用jquery.ui

使用requirejs加载外部脚本而无需访问config

我正在尝试在我正在编写的插件中加载datatables javascript库。 问题是我在加载外部资源时遇到冲突,因为当我调用require时,数据表与某些内容冲突。 … require([‘forum/admin/footer’]); <– crashes here, line 281 这是错误消息: Uncaught Error: Mismatched anonymous define() module: function (h){var j=function(e){function o(a,b){var c=j.defaults.columns,d=a.aoColumns.length,c=h.extend({},j.models.oColumn,c,{sSortingClass:a.oClasses.sSortable,sSortingClassJUI:a.oClasses.sSor……ch require.js:8 B require.js:8 M require.js:15 d require.js:26 requirejs require.js:31 (anonymous function) (index):281 由于这是一个插件,我有限制我正在尝试解决,例如无法在开头调用require.config()来指定资源的路径。 我看到有人使用define调用,如define(‘resource’, [‘http://cdn.ajax.blah’]); 在这个博客中 ,它看起来不像是可以这样使用,因为每个其他示例都有一个函数作为第二个参数。

requireJS with JQuery,Masonry,&ImagesLoaded:Object 没有方法’imagesLoaded’

这里需要新手。 试图转换一些JQuery代码我以旧的方式工作得很好,需要使用RequireJS。 我的页面标题通过脚本标记加载三个JS文件 – require.js本身,我的require.cfg.js和boot / main.js以及特定于站点的function。 相关的require.cfg.js摘录: ,paths: { ‘boot’: ‘src/boot’ ,’jquery’: ‘lib/jquery.min’ ,’jquery.masonry’: ‘lib/plugins/masonry.pkgd.min’ ,’jquery.imagesloaded’: ‘lib/plugins/imagesloaded.pkgd.min’ } ,shim: { ‘jquery’: { exports: ‘jQuery’ } ,’jquery.masonry’: [‘jquery’] ,’jquery.imagesloaded’: [‘jquery’] } 开机/ main.js: require([ ‘jquery’, ‘jquery.masonry’, ‘jquery.imagesloaded’, ], function($) { // The following code worked just fine when I included it in the header of […]

我正在努力使用requirejs优化器和非AMD模块

我正在努力使用requirejs优化器。 如果我只是在浏览器中加载它而没有优化,那么这段代码就可以工作 如果我运行优化器,我得到 : ENOENT, no such file or directory ‘C:\Users\dev\checkout\src\main\webapp\resources\scripts\ json2.js’ In module tree: main 这是代码 requirejs.config({ paths : { jquery : “lib/jquery”, bootstrap : “lib/bootstrap”, modals : “lib/modals”, tablesort : “lib/tablesort”, json2 : “lib/json2” }, shim : { “bootstrap” : [ “jquery” ], “modals” : [ “jquery” ], “tablesort” : [ “jquery” ], […]

为什么RequireJS不将jQuery传递给函数别名?

我下载了最新版 RequireJS的示例项目 。 他们的文档表明任何加载的内容都传递到相关函数的参数列表中(按相应的顺序)。 所以我决定尝试一下……但它似乎没有用! Firebug (网络标签)显示jQuery正在加载:所以RequireJS obvioulsy成功完成了那部分 Firebug (控制台选项卡)显示’$不是函数’ 我的问题是:为什么别名没有填充? 我的代码看起来像: require([“scripts/jQuery/Core/jquery-1.7.2.min”], function ($) { // jQuery is not passed-into the function, so the alias fails! $(function () { var stop = “”; }); }); 他们的样本看起来像: //Inside scripts/main.js require([“some/module”, “a.js”, “b.js”], function(someModule) { //… });

RequireJS不使用Shim’ed jQuery插件

插件几乎总是坚持在jQuery之前加载。 由于我使用垫片设置,他们不应该这样做。 在我的main.js中,我有以下设置: requirejs.config({ paths: { ‘jquery’: ‘https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min’, ‘bootstrap’: ‘../bootstrap/js/bootstrap.min’, ‘select2’: ‘vendor/select2’, ‘jshashtable’: ‘vendor/jshashtable-2.1’, ‘jquery.numberformatter’: ‘vendor/jquery.numberformatter-1.2.3.min’, ‘jq-datepicker’: ‘vendor/bootstrap-datepicker’, ‘jq-datepicker.da’: ‘vendor/bootstrap-datepicker.da’ }, // Use shim for plugins that does not support ADM shim: { ‘bootstrap’: [‘jquery’], ‘select2’: [‘jquery’], ‘jq-datepicker’: [‘jquery’], ‘jshashtable’: [‘jquery’], ‘jquery.numberformatter’: [‘jquery’, ‘jshashtable’] }, enforceDefine: true }); 稍后在这个文件中我有以下内容: // Start the main app logic. […]

使用JavaScript和Require.JS选择jQuery 1.9或2.0

jQuery 2. 0日益成熟: http : //blog.jquery.com/2013/03/01/jquery-2-0-beta-2-released/ jQuery 2.0打破了与旧版浏览器的兼容性,因此必须知道何时继续使用jQuery 1.9。 建议的方法是使用IE的条件注释: <!– 当前的Web开发最佳实践表明我们应该避免浏览器嗅探或用户代理字符串解析,但这不是条件注释的那种吗? jQuery 2.0是否只会破坏与旧版Internet Explorer的兼容性? 或者是否有其他浏览器在2.0中更糟糕? 如果这不仅影响Internet Explorer(这是条件评论唯一有效的地方),那么我们应该采用什么策略来选择最好的jQuery? 在JavaScript环境中是否存在全局可访问的值/对象/函数/等,其存在可用于表示与jQuery 2.0的兼容性(例如,function检测)? 主要问题 我的项目目前使用Require.JS来模块化我的代码。 我的代码目前只在遇到需要它的第一部分时才加载jQuery。 使用Require.JS加载正确版本的jQuery的最佳方法是什么? 我正在考虑: 在加载Require.JS之前使用IE条件注释,然后手动“定义”jQuery 在设置Require.JS路径的代码中使用JSfunction检测(在任何需要jQuery之前)根据需要将路径设置为1.9或2.0(我的首选方法) 总是使用1.9,无论什么(最安全,最无聊的方法)

为什么我的Mobile Safari缓存无法清除?

我正在尝试在iPhone4(iOS4)iPad1(iOS3.3)和桌面上调试网站。 我的问题是我无法清除iPhone缓存。 如果我将警报/控制台添加到我正在调试的js文件中,它们会显示在iPad和桌面上,但iPhone只是从缓存中重新加载。 如果我通过settings>safari>delete browser history, cache, cookies清除缓存settings>safari>delete browser history, cache, cookies并在Safari中删除所有书签并删除服务器上的文件,iPad和桌面中断(丢失的文件),但iPhone仍然加载页面,好像什么也没发生。 不确定这是正确的地方,但也许其他人有类似的经验和想法如何解决? 谢谢! 编辑 : 我多玩了一些。 如果我通过图标启动应用程序,缓存似乎已清除。 只有当我在Mobile Safari中打开页面时,它仍然使用缓存中的错误文件。 指针仍然欢迎! 编辑 : 我正在开始对此表示赏心悦目。 我在网站上使用RequireJS和JqueryMobile,因此这些也可能是缓存未清除的原因。 尽管如此,我还是不明白为什么它会在app-mode中清除,为什么它在Mobile Safari中无法清除。 我尝试过以下方法: 1.单击URL栏中的reload page不会清除缓存。 单击链接然后通过go加载页面似乎偶尔会清除缓存

requireJS与fileupload插件

在requirejs中,我们可以通过以下方式设置js的名称: requirejs.config({ paths: { ‘jquery’: ‘//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min.js’ } }); 并使用它: requirejs([‘jquery’],function ($) { //loaded and can be used here now. }); 但是对于像fileuploads这样的插件需要一些js文件。 他们的文档显示了如何将它与requirejs一起使用: https : //github.com/blueimp/jQuery-File-Upload/wiki/How-to-use-jQuery-File-Upload-with-RequireJS 但是,我怎样才能将它们全部放在一个名字中呢? requirejs([‘jquery’,’fileupload’],function ($) { //all fileupload js has been loaded and ready to use }); 因此,当我需要fileupload时,它将加载所有必需的js而不需要逐个。 谢谢。