【问题标题】:asp-fallback-test for loading jquery.unobtrusive-ajax.js用于加载 jquery.unobtrusive-ajax.js 的 asp-fallback-test
【发布时间】:2020-10-23 10:47:09
【问题描述】:

我正在构建一个 ASP-NET CORE 3.1 MVC Web 应用程序。我希望使用 CDNJS 网络来提供我的脚本资源文件,并且由于这是一个生产应用程序,因此我必须在 CDN 可能离线时回退到本地副本。这是一项相当基本的任务,我可以成功加载多个库,例如 Bootstrap 4.5、jQuery 3.3 等。

您可能知道,ASPNET 核心脚本标签助手内置了很棒的功能,可以自动完成我想做的事情。尝试加载 jquery.unobtrusive-ajax.min.js 时,我无法确定我的后备测试功能实际上应该是什么。这 ?????下面代表我无法工作的代码。

基本上,当CDN不可用时,我需要编写返回false的JS代码。这段代码将被插入到?????。

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-ajax-unobtrusive/3.2.6/jquery.unobtrusive-ajax.min.js"
        asp-fallback-src="~/lib/jquery-ajax-unobtrusive/jquery.unobtrusive-ajax.js"
        asp-fallback-test="window.jQuery && ?????">
</script>

【问题讨论】:

  • 有什么更新吗?我的回复解决了你的问题吗?

标签: jquery asp.net-core cdn asp.net-core-3.1


【解决方案1】:

据我所知,fallback-test 属性是一个用于后备测试的 Javascript 表达式。如果主脚本成功加载,则应解析为 true。

查看jquery.validate.unobtrusive.js后,我们可以发现它依赖于jQuery.validator js。

所以我建议你可以添加以下表达式:

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-ajax-unobtrusive/3.2.6/jquery.unobtrusive-ajax.min.js"
        asp-fallback-test="window.jQuery && window.jQuery.validator && window.jQuery.validator.unobtrusive"
         >
</script>

【讨论】:

  • 这是不显眼的验证插件 jquery.validate.unobtrusive.min.js 的后备...我需要一个用于不显眼的 AJAX 的插件
【解决方案2】:

刚刚在寻找相同答案时发现了这篇文章。

我发现了

asp-fallback-test="getEvents($(document)[0]).submit"

工作,其中getEvents定义如下(来自https://stackoverflow.com/a/12899236/4254458

    function getEvents(element) {
        var elemEvents = $._data(element, "events");
        var allDocEvnts = $._data(document, "events");
        for (var evntType in allDocEvnts) {
            if (allDocEvnts.hasOwnProperty(evntType)) {
                var evts = allDocEvnts[evntType];
                for (var i = 0; i < evts.length; i++) {
                    if ($(element).is(evts[i].selector)) {
                        if (elemEvents == null) {
                            elemEvents = {};
                        }
                        if (!elemEvents.hasOwnProperty(evntType)) {
                            elemEvents[evntType] = [];
                        }
                        elemEvents[evntType].push(evts[i]);
                    }
                }
            }
        }
        return elemEvents;
    }

【讨论】:

  • 简化 - asp-fallback-test: "window.jQuery && window.jQuery._data(window.jQuery(document)[0], 'events') && window.jQuery._data(window. jQuery(document)[0], 'events').submit"
猜你喜欢
  • 1970-01-01
  • 2014-06-16
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-02
  • 2019-04-15
  • 2018-12-24
相关资源
最近更新 更多