Javascript Html自动呈现关闭标记
我正在使用客户端技术(大部分通过JQuery的javascript)开发一个本地移动应用程序CMS系统,并实现了一个类似于ASP.NET的模板系统 假设我有一个导航控件,它有一个starttemplate、endtemplate和itemtemplate,如下所示:Javascript Html自动呈现关闭标记,javascript,jquery,html,Javascript,Jquery,Html,我正在使用客户端技术(大部分通过JQuery的javascript)开发一个本地移动应用程序CMS系统,并实现了一个类似于ASP.NET的模板系统 假设我有一个导航控件,它有一个starttemplate、endtemplate和itemtemplate,如下所示: <div data-type="navigation" id="navigationControlDemo"> <div data-type="starttemplate"> <ul
<div data-type="navigation" id="navigationControlDemo">
<div data-type="starttemplate">
<ul id="Menu">
</div>
<div data-type="itemtemplate">
<li><a href="[[Link]]">[[Text]]</a></li>
</div>
<div data-type="endtemplate" >
</ul>
</div>
</div>
<div data-type="navigation" id="navigationControlDemo">
<div data-type="starttemplate">
<ul id="Menu">
</ul>
</div>
<div data-type="itemtemplate">
<li><a href="[[Link]]">[[Text]]</a></li>
</div>
<div data-type="endtemplate" >
</div>
</div>
我的问题是浏览器,因为它似乎决定修复html,以便“正确”关闭标记,如下所示:
<div data-type="navigation" id="navigationControlDemo">
<div data-type="starttemplate">
<ul id="Menu">
</div>
<div data-type="itemtemplate">
<li><a href="[[Link]]">[[Text]]</a></li>
</div>
<div data-type="endtemplate" >
</ul>
</div>
</div>
<div data-type="navigation" id="navigationControlDemo">
<div data-type="starttemplate">
<ul id="Menu">
</ul>
</div>
<div data-type="itemtemplate">
<li><a href="[[Link]]">[[Text]]</a></li>
</div>
<div data-type="endtemplate" >
</div>
</div>
我试过一些变通办法和快速破解,但都没有用。。
我已尝试用某些字符替换“”并在加载后替换它们,但问题仍然存在。您的代码不是有效的html。您不能交错标记(在一个位置打开它,在另一个完全不同的位置关闭它)。标签必须正确嵌套 有效期:
<p>
<ul>
</ul>
</p>
现在,如果您将其解释为xml,那么模板中的部分将被视为文本而不是标记。您的代码不是有效的html。您不能交错标记(在一个位置打开它,在另一个完全不同的位置关闭它)。标签必须正确嵌套 有效期:
<p>
<ul>
</ul>
</p>
现在,如果您将其解释为xml,则模板中的部分被视为文本而不是标记。您不能将
元素作为
元素的子元素。
s仅接受
标记作为子项
此外,您似乎没有正确嵌套标记,如下所示:
<div data-type="starttemplate">
<ul id="Menu">
</div>
如果
仍处于打开状态,则无法关闭该
。这就是
过早关闭的原因。您不能将元素作为
元素的子元素。
s仅接受
标记作为子项
此外,您似乎没有正确嵌套标记,如下所示:
<div data-type="starttemplate">
<ul id="Menu">
</div>
如果
仍处于打开状态,则无法关闭该
。这就是为什么
过早关闭的原因。基本上,您是在寻求一种方法来强制浏览器显示格式错误、凌乱的内容。谢天谢地,大多数浏览器不会盲目地呈现这种代码,因为结果会让人无法忍受,让您的页面无法理解。
也就是说,如果您查看原始页面源代码,您可能会看到未更正的原始标记。但是因为浏览器不能真正渲染它,所以引擎会逐步升级并尽其所能
但是,请不要浪费你的时间来寻找解决方法,这只是一个帮助你的功能,而不是烦扰你。另外:HTML5有更多关于什么是允许的,什么是不允许的,以及浏览器如何处理无效标记的规则(例如,在您的代码中:
被视为无效)。如果你能胜任,你可以查看更多关于这个主题的信息。基本上,你是在要求一种方法来强制浏览器显示格式不正确、杂乱无章的内容。谢天谢地,大多数浏览器不会盲目地呈现这种代码,因为结果会让人无法忍受,让您的页面无法理解。
也就是说,如果您查看原始页面源代码,您可能会看到未更正的原始标记。但是因为浏览器不能真正渲染它,所以引擎会逐步升级并尽其所能
但是,请不要浪费你的时间来寻找解决方法,这只是一个帮助你的功能,而不是烦扰你。另外:HTML5有更多关于什么是允许的,什么是不允许的,以及浏览器如何处理无效标记的规则(例如,在您的代码中:
被视为无效)。如果您愿意,您可以查看主题的更多信息。而不是像我使用关键字这样的标记来表示<和>,然后使用模板系统呈现所有正确的html,并将这些关键字替换回,然后将其添加到文档中。我的模板标记中有令人讨厌的语法,但它按照我需要的方式工作。而不是像我使用关键字这样的标记来表示<和>,然后使用模板系统呈现所有正确的html,并将这些关键字替换回和>,然后将其添加到文档中。我的模板标记中有令人讨厌的语法,但它按我需要的方式工作。尝试将整个标记包装在标记中。@defau1t:不正确,相反:div
不能在ul
@Cerbrus中,对不起,我是说div不能在里面ul@EliasVanOotegem:对不起,我的意思是说div不能在标签内,并将整个标记包装在标签内。@defau1t:不正确,相反:div
不能在ul
@Cerbrus中,对不起,我是说div不能在里面ul@EliasVanOotegem:对不起,我的意思是说div不能在ul中。div
s没有嵌套在ul中,在下一个div
打开之前,ul
上面的一个被先关闭。@RenéWolferink:他还在ul
中嵌套div,请参见
,问题是,我们都是对的,也都是错的。因为它没有正确嵌套,所以无法判断上面的div是关闭的还是ul保持打开状态。该注释明确保证+1div
s没有嵌套在ul中,ul
上方的一个在下一个div
打开之前先关闭。@rene-Wolferink:他还在ul
中嵌套div,请参见
问题是,我们都对,我们都错。因为它没有正确嵌套,所以无法判断上面的div是关闭的还是ul是保持打开的。该注释肯定保证+1如果它允许我在原始标记上运行控件加载代码,它将被呈现