add support for data-reload=false attribute in Interactive rendering
This commit is contained in:
parent
af821dcd9a
commit
b5a1b529ab
|
@ -92,6 +92,14 @@
|
||||||
{
|
{
|
||||||
if (!firstRender)
|
if (!firstRender)
|
||||||
{
|
{
|
||||||
|
if (!string.IsNullOrEmpty(PageState.Site.HeadContent) && PageState.Site.HeadContent.Contains("<script"))
|
||||||
|
{
|
||||||
|
await InjectScripts(PageState.Site.HeadContent, ResourceLocation.Head);
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(PageState.Site.BodyContent) && PageState.Site.BodyContent.Contains("<script"))
|
||||||
|
{
|
||||||
|
await InjectScripts(PageState.Site.BodyContent, ResourceLocation.Body);
|
||||||
|
}
|
||||||
if (!string.IsNullOrEmpty(PageState.Page.HeadContent) && PageState.Page.HeadContent.Contains("<script"))
|
if (!string.IsNullOrEmpty(PageState.Page.HeadContent) && PageState.Page.HeadContent.Contains("<script"))
|
||||||
{
|
{
|
||||||
await InjectScripts(PageState.Page.HeadContent, ResourceLocation.Head);
|
await InjectScripts(PageState.Page.HeadContent, ResourceLocation.Head);
|
||||||
|
@ -180,14 +188,16 @@
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// inline script must have an id attribute
|
if (dataAttributes == null || !dataAttributes.ContainsKey("data-reload") || dataAttributes["data-reload"] != "false")
|
||||||
if (id == "")
|
|
||||||
{
|
{
|
||||||
count += 1;
|
if (id == "")
|
||||||
id = $"page{PageState.Page.PageId}-script{count}";
|
{
|
||||||
|
count += 1;
|
||||||
|
id = $"page{PageState.Page.PageId}-script{count}";
|
||||||
|
}
|
||||||
|
var pos = script.IndexOf(">") + 1;
|
||||||
|
await interop.IncludeScript(id, "", "", "", type, script.Substring(pos, script.IndexOf("</script>") - pos), location.ToString().ToLower(), dataAttributes);
|
||||||
}
|
}
|
||||||
var pos = script.IndexOf(">") + 1;
|
|
||||||
await interop.IncludeScript(id, "", "", "", type, script.Substring(pos, script.IndexOf("</script>") - pos), location.ToString().ToLower(), dataAttributes);
|
|
||||||
}
|
}
|
||||||
index = content.IndexOf("<script", index + 1);
|
index = content.IndexOf("<script", index + 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -192,9 +192,6 @@
|
||||||
_scripts += CreateScrollPositionScript();
|
_scripts += CreateScrollPositionScript();
|
||||||
}
|
}
|
||||||
|
|
||||||
_headResources += ParseScripts(site.HeadContent);
|
|
||||||
_bodyResources += ParseScripts(site.BodyContent);
|
|
||||||
|
|
||||||
// set culture if not specified
|
// set culture if not specified
|
||||||
string cultureCookie = Context.Request.Cookies[Shared.CookieRequestCultureProvider.DefaultCookieName];
|
string cultureCookie = Context.Request.Cookies[Shared.CookieRequestCultureProvider.DefaultCookieName];
|
||||||
if (cultureCookie == null)
|
if (cultureCookie == null)
|
||||||
|
@ -514,22 +511,6 @@
|
||||||
"</script>" + Environment.NewLine;
|
"</script>" + Environment.NewLine;
|
||||||
}
|
}
|
||||||
|
|
||||||
private string ParseScripts(string content)
|
|
||||||
{
|
|
||||||
var scripts = "";
|
|
||||||
// in interactive render mode, parse scripts from content and inject into page
|
|
||||||
if (_renderMode == RenderModes.Interactive && !string.IsNullOrEmpty(content))
|
|
||||||
{
|
|
||||||
var index = content.IndexOf("<script");
|
|
||||||
while (index >= 0)
|
|
||||||
{
|
|
||||||
scripts += content.Substring(index, content.IndexOf("</script>", index) + 9 - index);
|
|
||||||
index = content.IndexOf("<script", index + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return scripts;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void AddScript(Resource resource, Alias alias)
|
private void AddScript(Resource resource, Alias alias)
|
||||||
{
|
{
|
||||||
var script = CreateScript(resource, alias);
|
var script = CreateScript(resource, alias);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user