javascript - 如何在TVJS中获取TVML textField的节点和键盘引用?

标签 javascript apple-tv tvos tvml

有人在这里问了同样的问题How do you get the value from a TVML textField?但没有解释完整的答案,我的评论被编辑了,建议我问一个全新的问题。这是...

任何人都可以帮助理解如何最好地从 TVML 获取对 textField 节点及其键盘值的引用吗?现在,我在 Presenter.js 中使用下面的代码,一旦用户单击模板中显示的 Done 按钮,即可访问 textField表单和键盘,但仍然得到

ITML : undefined is not an object (evaluating 'textField.getFeature') - .../js/Presenter.js

当我使用getFeature("Keyboard")时:

load: function(event) {  
var self = this,  
    ele = event.target,  
    templateURL = ele.getAttribute("template"),  
    presentation = ele.getAttribute("presentation"),  
    videoURL = ele.getAttribute("videoURL");  

if (templateURL && (event.type == "select")) {  
    var formTemplate = ele.parentNode.parentNode; // that should give me <formTemplate> element  
    var children = formTemplate.childNodes;  
    var textField = children[1]; // which is the second element in <formTemplate><banner></banner><textField></textField>...  
    var keyboard = textField.getFeature("Keyboard"); // this raises the ITML Error...  
    ...........................

更新:

我通过查看 accessing elements by traversing XML DOM 找到了解决方案:

var formTemplate = ele.parentNode.parentNode; // your formTemplate button  
var children = formTemplate.childNodes;  
var textField = children.item(1); // replace "1" with the index of "textField" element in your template  
var keyboard = textField.getFeature("Keyboard"); // get the textField's Keyboard element  
var userValue = keyboard.text; // the value entered by the user on the Apple TV keyboard 

最佳答案

从文档的根目录开始怎么样?使用 getElementsByTagNamegetElementByTagNamegetElementById 访问 textField

var doc = navigationDocument.documents[navigationDocument.documents.length-1];
var textField = doc.getElementByTagName("textField")

var value = textField.getFeature("Keyboard").text;

关于javascript - 如何在TVJS中获取TVML textField的节点和键盘引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32808960/

相关文章:

javascript - Crm 2011 javascript获取单选按钮值并设置用户名

ios - 图像资源无效

swift - 带有 cachePolicy ReloadIgnoringCacheData 的 NSURLRequest 返回陈旧数据

android - Anvato SDK如何实现?

javascript - window.matchMedia(mediaQueryString) 是否接受 mediaQueryString 变量?

javascript - 我如何使用 escape 关闭预览窗口,该窗口将要求用户输入他的名字

javascript - webpack 在带有源映射的生产构建中应该有 `webpack://` urls 吗?

uitabbarcontroller - 如何禁用标签栏项目中的焦点选择?

xcode - Apple TV 没有出现在 Xcode > 设备和模拟器菜单中

swift - 无法使用 Fairplay HLS 从 AVPlayer 获取视频缩略图