javascript - 使用 applescript 获取 HTML 元素

标签 javascript html applescript

警告:我不擅长 JavaScript,我的 JavaScript 部分基于 this post .

所以我有一个小脚本应该设置 theDuration到事件选项卡前窗口中的 HTML 元素。我查看了 HTML,完整的元素是 <span id="duration">00:10:00</span> 。我要theDuration成为00:10:00 。我知道您可以将 JavaScript 变量设置为下面的 JavaScript 代码,因为 post I based it off of 中提到了它,但是当我尝试运行下面的代码时,它不起作用。

tell application "Google Chrome"
    tell active tab of front window to set theDuration to execute javascript "document.getElementById('duration');"
end tell

编辑:现在我放置了 tell active tab of front windowset theDuration to...前面,它编译了,但 Duration 只是 {}而不是00:10:00 .

最佳答案

给定以下HTML片段:

<span id="duration">00:10:00</span>

并且想要变量 theDuration包含 duration 的值当元素id时,您可以使用以下方式查询:

tell application "Google Chrome" to ¬
    set theDuration to ¬
        execute front window's active tab javascript ¬
            "document.getElementById('duration').innerText;"


来自: W3Schools

HTML DOM getElementById() 方法

定义和用法

getElementById() 方法返回具有指定值的 ID 属性的元素。

此方法是 HTML DOM 中最常见的方法之一,几乎每次您想要操作文档中的元素或从中获取信息时都会用到。

如果不存在具有指定 ID 的元素,则返回 null

ID 在页面内应该是唯一的。但是,如果存在多个具有指定 ID 的元素,则 getElementById() 方法将返回源代码中的第一个元素。

语法:

document.getElementById(elementID)

参数值:

  • 参数:elementID
  • 类型:字符串
  • 描述:必填。您想要获取的元素的 ID 属性值


来自: W3Schools

HTML DOM insideText 属性

定义和用法

innerText 属性设置或返回指定节点、及其所有后代的文本内容。

如果设置innerText 属性,所有子节点都将被删除并替换为包含指定字符串的单个Text 节点。

注意:此属性与 textContent 属性类似,但存在一些差异:

  • textContent 返回所有元素的文本内容,而innerText返回所有元素的内容,除了 <script><style>元素。
  • innerText 不会返回用 CSS 隐藏的元素的文本(textContent 会)。

提示:要设置或返回元素的 HTML 内容,请使用innerHTML 属性。



来自: W3Schools

HTML DOM insideHTML 属性

定义和用法

innerHTML 属性设置或返回元素的 HTML 内容(内部 HTML)。

语法

返回innerHTML属性:

HTMLElementObject.innerHTML

设置innerHTML属性:

HTMLElementObject.innerHTML = text

属性(property)值(value)

  • :文本
  • 描述:指定元素的 HTML 内容


我的笔记:

既然您要求规范的答案,我引用来自 W3Schools 的信息因为我发现它是最好的规范来源之一,在使用 JavaScriptAppleScript 混合使用时对我有帮助。

请注意,在这种特殊情况下,给定 HTML snippet,即 HTMLElement.innerTextHTMLElement.innerHTML 都会返回。例如00:10:00 。由于两者都可以返回/设置指定节点的文本内容,因此只需根据您的特定需求/用途以及您具体应用它的目的来了解它们的差异。

关于javascript - 使用 applescript 获取 HTML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67950402/

相关文章:

javascript - 初学者

javascript - 无框架切换关键事件

html - 使用 bootstrap 3 调整图像周围的文本

javascript - 使用 jQuery 确定用户是否已将完整 URL 复制并粘贴到浏览器中?

cocoa - 在 AppleScript 中调整不可编写脚本的应用程序的窗口大小

javascript - 无法添加阴影

javascript - 预加载背景图片

javascript - 尝试动态使用 jOrgChart

ios - 我们能以某种方式在 xcode 模拟器中自定义 RAM 大小吗

mysql - mysql 映射