首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >html5模板标记:内容访问的回退

html5模板标记:内容访问的回退
EN

Stack Overflow用户
提问于 2016-03-05 14:19:23
回答 1查看 454关注 0票数 1

我正在使用webkit浏览器(JavaFX WebView 2.2)中的模板标记来存储可以克隆并附加到文档主体部分的元素。

但是,我不能使用templateElement.content ( HTML5标准)访问它的内容。相反,我使用jQuery获取模板标记中的元素,并使用选择器"#templateElement div“。

似乎模板标记还没有被完全支持(内部脚本也在运行),尽管它的内容没有呈现。

我担心的是,当模板标签受到支持时,获取其内容的方法就会中断,我的页面就会停止工作。

无论将来的实现更改如何,获得模板内容的推荐方法是什么?

HTML:

代码语言:javascript
运行
复制
<template id="templateElement">
    <div>Clone Me!</div>
</template>

JavaScript:

代码语言:javascript
运行
复制
function getContentsCurrent() {
    var toBeCloned = $("#templateElement div")[0];
    //append where needed...
}

function getContentsFuture() {
    var toBeCloned = templateElement.content.getElementsByTagName("div")[0];
    //append where needed...
}

编辑

我认为jQuery将无法自动处理这个问题,即使在将来也是如此,因为模板"innerHTML“是故意路由到content的,这样DOM就无法访问它了(所以没有选择器意外地接触到它)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-05 15:24:01

您可以在此之前测试content特性是否存在:

代码语言:javascript
运行
复制
function getContents() {
  var toBeCloned;
  if ( templateElement.content )
    toBeCloned = templateElement.content.getElementsByTagName("div")[0];
  else
    toBeCloned = templateElement.querySelector("div");
  //append where needed...
}

另一种方式是:

代码语言:javascript
运行
复制
var content = templateElement.content || templateElement
var toBeCloned = content.querySelector( "div" )
//...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35815204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档