0

这是一个非常具体的问题,与此处提出的更广泛的问题有关:

抓取/复制/转换为变量:谷歌翻译文本(写入其他页面)客户端

我读过 DOM(维基):

为了呈现诸如 HTML 页面之类的文档,大多数 Web 浏览器使用类似于 DOM 的内部模型。每个文档的节点都组织在一个树结构中,称为 DOM 树,最顶层的节点称为“文档对象”。当 HTML 页面在浏览器中呈现时,浏览器会将 HTML 下载到本地内存中并自动解析它以在屏幕上显示该页面。DOM 也是 JavaScript 在 HTML 页面中传输浏览器状态的方式。

这很有趣,但它没有说明输出是“作为对象”的。

然而,我们可以突出显示输出或显示的文本,然后复制和粘贴。因此,highlight 和 copy 命令必须知道如何访问输出 - 因此它必须是一个对象(是/否?)

如果这些命令可以访问输出……这就引出了一个问题:

Javascript 也可以访问输出吗? 如果是这样......它叫什么,它的脚本路径是什么。

例如典型的例子:

var x = document.getElementById("textarea_id").value;

我可能需要:

var x = path_to_parsed_output.value;

这个问题的答案必须在那里......但我已经查看了一些很好的参考网站,似乎没有一个可以直接解决这个问题。

我希望一些知识渊博的人简单地说一下,什么可能是一个明显的答案(如果你有知识就很明显)。

:)

4

1 回答 1

1

是和不是。是的,您几乎可以通过 JavaScript 在 DOM 中访问任何您想要的东西。

但是没有对比根节点更靠后的节点的通用引用(同样,有几个例外)。

您要么必须使用树导航算法遍历 DOM,直到找到所需内容,要么必须为 HTML 节点提供定义特征并使用 DOM 访问方法,该方法将为您提供单个元素使用该属性 ( id) 或具有该属性 ( ) 的节点列表,class您必须对其进行迭代才能找到所需的内容。

...所以诀窍是找到您想要的节点的定义特征,以尽可能轻松地访问它。

但是,DOM 节点与对象并不是 1:1 的。
这意味着您对它作为对象所做的更改可能不会反映在 HTML 中,反之亦然(除非您使用的是特定于 DOM 的方法)。

关于 DOM 对象支持的内容,请阅读 Mozilla Developer Network 上的教程。
这是一个巨大的话题,不同的浏览器支持不同的东西。

于 2012-11-02T18:22:27.587 回答