使用 javascript 按下 GMail 的样式按钮
Pressing GMail's styling buttons using javascript
我正在 GMail 中编辑一条消息。我想按下其中一个样式按钮,例如"缩进"、"缩进"、"从右到左"等。
我想做到这一点不是通过按,而是通过在地址栏中键入一段 javascript 并按 Enter 来做到这一点。
(我对这样做很感兴趣,这样我就可以编写一个使用键盘而不是鼠标按下按钮的脚本。
这可能吗?
赏金:
赏金将授予任何提供完整、有效的解决方案的人,我可以将其放入 Chrome 的地址栏中,以按下按钮(如"缩进"、"链接"、"缩进"、"从右到左"等)。(当然,每个按钮的行不同。
要选择元素,您首先需要选择 iframe
var inlineFrame = document.getElementById("canvas_frame");
接下来,您可以从 iframe 获取内容窗口(iframe 的窗口范围),如下所示:
var contentwindow = inlineFrame.contentWindow;
接下来使用查询选择器(仅限真实浏览器(IE8-不支持)),您可以像这样选择按钮。([command='+bold']
的意思是:任何具有属性命令的元素,其值为"+bold",就像在CSS中一样)。
var button = contentwindow.document.querySelector("[command='+bold']");
如果检查相关按钮,它们都包含可用于选择它们的命令属性。接下来,您可以使用该按钮执行任何所需的操作(在stackoverflow上查找其他答案,以获取模拟事件的不同方法,因为您应该能够自己执行此操作)。
如果你想把它作为一个书签,你当然也可以用它做一行,但我认为这样作为答案会更清楚。
尝试Ctrl+B
、Ctrl+I
、Ctrl+U
这是你的意思吗?
首先,你需要弄清楚你想要被"点击"的 DOM 元素的 ID/标签索引/css 类,然后使用选择器访问它,最后调用它的点击事件。
要动态选择 DOM 元素,如果您知道其 ID,则可以使用 document.getElementById(<id>)
,如果您知道其标签名称和索引,则可以使用 document.getElementsByTagName(<tagName>)[<index>]
。
如果你只知道元素使用特定的css类,你仍然可以循环每个标签直到element.className==<className>
或动态导入jquery然后调用$('.<className>').trigger('click');
希望这有帮助
免责声明:更多或通用答案,与Gmail没有直接关系。
若要单击页面上的任何元素,可以使用 element.click()
方法。请注意,所有元素都没有单击方法。 不过<input>
元素支持。
我不确定您是否可以从 URL 栏访问document
对象。因此,如果我使用Firefox,我会打开Firebg或更好的Scratch Pad(>Web开发人员工具>Scratch Pad)并编写以下内容:
javascript:function foo(){document.getElementById('link1').click();}foo();
执行上述代码后,它将在 ID 为 'link1' 的元素上调用 click
方法。
- FF和Chromium中CSS样式按钮的外观差异
- 使用javascript单击同一按钮,在两种样式之间更改css值
- bootstrap在类更改时动画按钮样式
- 使用 JavaScript 获取按钮元素和样式按钮
- 如何在单击和单击不同的按钮时更改按钮的样式,它应该更改为默认值
- 单击上一个或继续按钮时更改选项卡样式
- 将 href 样式设置为按钮
- 如何使用Jquery设置按钮样式
- 使用css类将自定义样式应用于上下文按钮的Highcharts
- Javascript/JQuery样式-#按钮:点击全屏后悬停保持活动状态
- (JavaScript/HTML)如何在单击按钮时更改样式属性中的显示
- 根据单选按钮在页面加载时使用不同的样式表
- 使用 javascript 按下 GMail 的样式按钮
- 样式为 -webkit-外观的单选按钮:复选框:Chrome 中的不确定状态
- 如何通过单击按钮更改 geojson 样式
- 单选按钮 - 单击时设置背景样式
- 多个按钮,每个按钮都有不同的样式 - 单击后需要保持悬停状态
- 在 CTRL+P 和单击按钮时打印样式不同
- 使用 Primefaces 5.1 如何在运行时仅使用 javascript 更改按钮图标样式.(没有 AJAX 调用)
- jqGrid 使用您自己的删除样式按钮