【问题标题】:How to get an HTML button disabled status (true or false) into AppleScript?如何在 AppleScript 中获取 HTML 按钮禁用状态(真或假)?
【发布时间】:2021-09-12 03:49:27
【问题描述】:

网页中的按钮处于禁用状态。此状态可以是真或假。如果为 true,则表示该按钮在网页上显示为灰色。

使用 Javascript,我可以通过以下方式检索状态:

document.getElementById('view-more').disabled

它将返回真或假。

但如果我将它与 AppleScript 结合使用:

set buttonStatus to do Javascript "document.getElementById('view-more').disabled

没有返回关于按钮状态的任何信息。

按钮的实际 HTML 代码是:

<button id="view-more" class="view_more">View more</button>

当按钮被禁用时,它变成:

<button id="view-more" class="view_more" disabled="disabled">View more</button>

【问题讨论】:

    标签: javascript html button applescript


    【解决方案1】:

    使用一个简单的HTML 文件和一个禁用的按钮,下面的示例 AppleScript 代码 对我有用:

    示例 AppleScript 代码

    tell application "Safari"
        do JavaScript "document.getElementById('button').disabled;" in document 1
    end tell
    



    HTML 文件的内容如Terminal所示:

    % cat button.html
    <!DOCTYPE html>
    <html>
      <head>
      </head>
      <body>
        <button id="button" disabled>Button</button>
      </body>
    </html>
    % 
    

    脚本编辑器的屏幕截图:




    启用按钮

    HTML 文件的内容如Terminal所示:

    % cat button.html
    <!DOCTYPE html>
    <html>
      <head>
      </head>
      <body>
        <button id="button">Button</button>
      </body>
    </html>
    % 
    

    脚本编辑器的屏幕截图:

    【讨论】:

    • 我尝试使用您提供的相同 html 按钮代码运行您的代码,但我的系统(M1 MacBook Air)不会在 AppleScript 中返回 true 或 false。我尝试在脚本编辑器和脚本调试器中运行您的 AppleScript 代码。处于非禁用状态的按钮的实际 HTML 代码是 并且禁用时按钮的代码是
    • 看起来您提供的代码在您的系统上可以正常运行,但不是我的。
    • @Wayland Chin,将 example HTML file 加载到 Safari 下 macOS Catalina 和 macOS Big Sur 我的回答中的 example AppleScript code 确实有效如屏幕截图所示。使用评论中提供的 HTML code 并对 AppleScript code 进行适当的更改以使用它适用于我测试过的两个不同系统。
    • @Wayland Chin,在 Safari 中,您是否在 Safari 上勾选了 Allow JavaScript from Apple Events > 开发菜单? -- 注意默认是隐藏的,可以通过勾选[√] Show Develop menu in menu bar来显示:Safari > Preferences... > 高级
    • 我确实在“开发”菜单中选中了“允许来自 Apple 事件的 JavaScript”。这很奇怪。完全相同的代码如何为您的计算机提供返回值,而不是我的?感谢您帮助调查此问题。非常感谢。
    猜你喜欢
    • 2018-10-11
    • 1970-01-01
    • 2012-11-13
    • 2016-10-20
    • 2019-06-08
    • 2020-05-27
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    相关资源
    最近更新 更多