繁体   English   中英

JS模块中只能有一个function

[英]Can only have one function in JS module

我发现这篇关于如何使用 Blazor 编写 cookie 的帖子(事实证明,这涉及 JavaScript)。 使用帖子中的示例,我制作了自己的版本,具有写入读取function。 所以它看起来像这样:

<script>
    window.blazorExtensions = {

        WriteCookie: function (name, value, days) {

            var expires;

            if (days) {
                var date = new Date();
                date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                expires = "; expires=" + date.toGMTString();
            }
            else {
                expires = "";
            }

            document.cookie = name + "=" + value + expires + "; path=/";
        };

        ReadCookie: function (cname) {
            var name = cname + "=";
            var decodedCookie = decodeURIComponent(document.cookie);
            var ca = decodedCookie.split(';');
            for(var i = 0; i <ca.length; i++) {
                var c = ca[i];
                while (c.charAt(0) == ' ') {
                c = c.substring(1);
                }
                if (c.indexOf(name) == 0) {
                return c.substring(name.length, c.length);
                }
            }
            return "";
        }
    }
</script>

唯一的问题是......它不起作用:-(

如果我只有WriteCookie方法,它就可以工作。 如果我只有ReadCookie方法,它就可以工作。 但如果我两者都有,那就不行了。

从外观上看, window部分是一个模块,但我可能错了。 但是,这就是 VS Code 在工具提示中所说的:

来自 blazorExtensions 的工具提示

谁能向我解释一下,为什么这不起作用? 我尝试了谷歌,但由于我对术语感到困惑,所以很难找到有用的东西。 我习惯于 C# 并认为window.blazorExtension是某种命名空间。

如果有任何帮助,这是我调用函数的方式:

public async Task WriteCookeAsync() {
        var test = await JSRuntime.InvokeAsync<object>("blazorExtensions.WriteCookie", "Color", colorCode, 7);
    }

如果没有实际检查您的函数的正确性,我可以看到 object window.blazorExtensions定义不正确。 您需要做的是将WriteCookie function 定义后的分号更改为逗号,如 JavaScript object 属性是逗号分隔的...

window.blazorExtensions = {
    
    WriteCookie: function (name, value, days) {
        //...
    },

    ReadCookie: function (cname) {
        //...
    },
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM