Zafir.UI.Next 不支持 IE11
Zafir.UI.Next not working with IE11
从 Zafir.UI.Next 版本 4.0.128.30.beta6 开始,有一个
jQuery.Deferred IE11 异常:
jQuery.Deferred exception: Die Eigenschaft "insertBefore" eines undefinierten oder Nullverweises kann nicht abgerufen werden. TypeError: Die Eigenschaft "insertBefore" eines undefinierten oder Nullverweises kann nicht abgerufen werden.
at DomUtility.InsertAt (WebSharper.UI.Next.js:423:96)
at Docs.InsertNode (WebSharper.UI.Next.js:3933:3)
at Docs.InsertDoc (WebSharper.UI.Next.js:3926:3)
at Docs.LinkPrevElement (WebSharper.UI.Next.js:3879:3)
at Doc.RunBetween (WebSharper.UI.Next.js:5452:3)
at Doc.RunBefore (WebSharper.UI.Next.js:5447:3)
at ReplaceInDom (WebSharper/WebSharper.UI.Next.js:3942:4)
at a (WebSharper.Main.js:1264:7)
at Anonymous function (WebSharper.Main)
SCRIPT5007: Die Eigenschaft "insertBefore" eines undefinierten oder Nullverweises kann nicht abgerufen werden.
jquery-3.1.1.js (3855,3)
项目的服务器部分是这样的:
public class Server
{
[Website]
public static Sitelet<object> Main => new SiteletBuilder().With<string>
((ctx, endpoint) => Content.Page(
Head:
doc(
link(attr.href("Content/bootstrap.css"), attr.rel("stylesheet"), attr.type("text/css")),
script(attr.src("Scripts/jquery-3.1.1.js"), attr.type("text/javascript")),
script(attr.src("Scripts/jquery.stickytableheaders.js"), attr.type("text/javascript"))
),
Body:
doc(
client(() => Client.Main(endpoint))
)
).Install();
客户是这样的:
public static IControlBody Main(字符串端点) {return div( ...);}
这可以完美地与例如Chrome 和边缘。
这有什么问题?有错误吗?
非常感谢任何提示。
编辑:
我在版本 4.0.132.34-beta6 的 WebSharper.UI.Next.js 中发现了有问题的代码。
这在 EGDE 和 Chrome 中都有效,但在 IE11 中无效:
Docs.LinkPrevElement=function(el,children)
{
var v;
v=Docs.InsertDoc(el.parentElement,children,el);
};
我将代码更改为:
Docs.LinkPrevElement=function(el,children)
{
var v;
v=Docs.InsertDoc(el.parentNode,children,el);
};
这适用于 EDGE、Chrome 和 IE11。
有人可以解释一下吗?
编辑 2:
这不鼓励使用 parentElement:What is this.parentElement?
显然这已在 WebSharper 4 beta-7 中修复:https://github.com/intellifactory/websharper.ui.next/issues/117
顺便说一句,我在 post-build 中使用它来更正生成的脚本:
powershell -c "gci $(ProjectDir)Scripts\WebSharper\*.js -recurse | foreach {(gc $_ | foreach {$_ -replace 'parentElement', 'parentNode'}) | sc $_}"
非常感谢。
从 Zafir.UI.Next 版本 4.0.128.30.beta6 开始,有一个 jQuery.Deferred IE11 异常:
jQuery.Deferred exception: Die Eigenschaft "insertBefore" eines undefinierten oder Nullverweises kann nicht abgerufen werden. TypeError: Die Eigenschaft "insertBefore" eines undefinierten oder Nullverweises kann nicht abgerufen werden.
at DomUtility.InsertAt (WebSharper.UI.Next.js:423:96)
at Docs.InsertNode (WebSharper.UI.Next.js:3933:3)
at Docs.InsertDoc (WebSharper.UI.Next.js:3926:3)
at Docs.LinkPrevElement (WebSharper.UI.Next.js:3879:3)
at Doc.RunBetween (WebSharper.UI.Next.js:5452:3)
at Doc.RunBefore (WebSharper.UI.Next.js:5447:3)
at ReplaceInDom (WebSharper/WebSharper.UI.Next.js:3942:4)
at a (WebSharper.Main.js:1264:7)
at Anonymous function (WebSharper.Main)
SCRIPT5007: Die Eigenschaft "insertBefore" eines undefinierten oder Nullverweises kann nicht abgerufen werden.
jquery-3.1.1.js (3855,3)
项目的服务器部分是这样的:
public class Server
{
[Website]
public static Sitelet<object> Main => new SiteletBuilder().With<string>
((ctx, endpoint) => Content.Page(
Head:
doc(
link(attr.href("Content/bootstrap.css"), attr.rel("stylesheet"), attr.type("text/css")),
script(attr.src("Scripts/jquery-3.1.1.js"), attr.type("text/javascript")),
script(attr.src("Scripts/jquery.stickytableheaders.js"), attr.type("text/javascript"))
),
Body:
doc(
client(() => Client.Main(endpoint))
)
).Install();
客户是这样的:
public static IControlBody Main(字符串端点) {return div( ...);}
这可以完美地与例如Chrome 和边缘。
这有什么问题?有错误吗?
非常感谢任何提示。
编辑:
我在版本 4.0.132.34-beta6 的 WebSharper.UI.Next.js 中发现了有问题的代码。
这在 EGDE 和 Chrome 中都有效,但在 IE11 中无效:
Docs.LinkPrevElement=function(el,children)
{
var v;
v=Docs.InsertDoc(el.parentElement,children,el);
};
我将代码更改为:
Docs.LinkPrevElement=function(el,children)
{
var v;
v=Docs.InsertDoc(el.parentNode,children,el);
};
这适用于 EDGE、Chrome 和 IE11。
有人可以解释一下吗?
编辑 2:
这不鼓励使用 parentElement:What is this.parentElement?
显然这已在 WebSharper 4 beta-7 中修复:https://github.com/intellifactory/websharper.ui.next/issues/117
顺便说一句,我在 post-build 中使用它来更正生成的脚本:
powershell -c "gci $(ProjectDir)Scripts\WebSharper\*.js -recurse | foreach {(gc $_ | foreach {$_ -replace 'parentElement', 'parentNode'}) | sc $_}"
非常感谢。