Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么要设置HTML(“表”<;tr>;<;/tr>;<;/table>;);但是接下来是getHTML();return"&书信电报;表>&书信电报;t车身>&书信电报;tr></tr></t车身></表>&引用;(Gwt)?_Gwt - Fatal编程技术网

为什么要设置HTML(“表”<;tr>;<;/tr>;<;/table>;);但是接下来是getHTML();return"&书信电报;表>&书信电报;t车身>&书信电报;tr></tr></t车身></表>&引用;(Gwt)?

为什么要设置HTML(“表”<;tr>;<;/tr>;<;/table>;);但是接下来是getHTML();return"&书信电报;表>&书信电报;t车身>&书信电报;tr></tr></t车身></表>&引用;(Gwt)?,gwt,Gwt,我不明白GwtsetHTML&getHTML是如何工作的。这似乎并不一致 让我们看看这个例子: myInlineHtml.setHTML(SafeHtmlUtils.fromSafeConstant("<table><tr><td>Test</td></tr></table>")); System.out.println(myInlineHtml.getHTML()); myInlineHtml.setHTML(safeh

我不明白Gwt
setHTML&getHTML
是如何工作的。这似乎并不一致

让我们看看这个例子:

myInlineHtml.setHTML(SafeHtmlUtils.fromSafeConstant("<table><tr><td>Test</td></tr></table>"));
System.out.println(myInlineHtml.getHTML());
myInlineHtml.setHTML(safehtmlitls.fromSafeConstant(“Test”);
System.out.println(myInlineHtml.getHTML());
输出:
“测试”

显然,当我们为
myInlineHtml
设置html时,我们没有
,但是当我们从
myInlineHtml
getHTML
时,Gwt包含

为什么会发生这种情况,因为当您想要获取Html值,并且您认为它在我们设置它时具有相同的值,但它没有时,这可能会令人困惑


这是独立于浏览器还是独立于浏览器 浏览器?因为这很严重


即使省略了某些键或参数,浏览器也会尝试正确格式化html。大多数现代浏览器都会接受您传递的几乎所有内容,而不会有太多抱怨,但它会解释您的意思并插入有效的HTML,而不是插入您想要的内容


因此,在不指定tbody节点的情况下创建表是完全有效的,但浏览器将为您提供它。使用
getHTML()
后,您将访问已解析的、格式良好的标记。

这就是HTML的解析方式(浏览器应该如何解析它)

在HTML4中,(就SGML而言)要求使用
TBODY
子元素,并且起始标记和结束标记都是可选的


在HTML5(它编码浏览器如何实际解析HTML)中,这是相同的:当构建
表时,如果浏览器找到
tr
,那么在解析
tr
之前,它会先添加元素,就好像最初有
tbody

这是独立于浏览器还是独立于浏览器发生的?因为这很严重。所以getHTML返回值是基于浏览器还是基于Gwt机制?它可能与浏览器有些关联,但我不这么认为。我认为这与doctype声明更相关。XHTML强制执行html5不关心的许多语法。我在GWT方面没有经验,但jQuery在处理之前的html和解析的html时表现类似。如果插入一个自关闭的div
jQuery(element).html(“”)
之后再检索内容,它将是一个有效的空div
。在您的情况下,我会尝试为我使用的doctype插入格式正确的html。如果gwt强制使用tbody,那么就给它一个tbody。“它可能与浏览器有点关联”,这很严重,因为它可能会导致编程错误,您从不同的浏览器获得不同的值。您需要找到一种方法,使您的代码能够工作,即使DOM结构中存在细微差异。例如,当使用css或xpath选择器时,可以独立于包含在tbody标记中的第一个表的tr寻址。这就是为什么jQuery在DOM操作中如此流行的原因。它抽象了getter、setter和listener,从而省去了适应不同浏览器的麻烦。但最重要的是getHTML是否在所有浏览器中都返回相同的值?或者根据浏览器的不同返回不同的结果?@Tum为什么不测试一下呢?我有3个浏览器,即Chrome&FF,不确定是哪个版本,但似乎所有这些浏览器的行为都是一样的,无论如何我都必须改变我的程序,使其不依赖于getHTML。非常感谢你的回答