如何使用javascript编辑iframe中的html
我正在致力于使我的业务中的一个流程自动化,其中一部分是通过Salesforce发送电子邮件。我们无法访问SF API,必须通过Salesforce发送电子邮件,以保持同事可以搜索通信。
我需要使用可在Salesforce中选择的模板,但是此功能在IE(我们的RPA解决方案使用的IE)中不起作用,因此我需要从头开始构建此电子邮件。
我看到两个选项:
- 使用HTML使用正确的变量重新创建格式。这需要插入/注入/操作HTML。
- 将格式复制到内存/剪贴板中,编程编辑后粘贴到SF界面
在本周之前,我没有任何使用javascript的经验(幸运的是,它似乎类似于c#,在这方面我确实有经验),现在这个iframe把我难倒了。显然,当你使用Selenium或类似的东西时,你可以将驱动程序切换到新的IFRAME,但我没有这个选项,它需要通过表面自动化来完成。在javascript和控制台中,我无法让它指向iframe中的单独文档。显然,iFrame内容没有以这种方式合并到更大的网页中。
因此,我的问题是:如何使用javascript将焦点切换到IFRAME?那么我如何通过javascript编辑iframe内容呢?如有任何帮助、提示等,我们将不胜感激!解决方案
如果您在浏览器中转到"开发人员工具"(F12或右键单击"检查"),则可以使用inpsect工具获取您要查找的路径。IFRAME只是窗口内的另一个窗口,一旦有了"基本路径",您就可以从IFRAME基本路径进一步延伸到窗口中。
您可以通过我所知的两种方式之一访问框架;
document.getElementById('the frame you are looking for goes here').contentWindow.targetFunction();
和/或
window.frames[0].otherfunctions
其中0是窗口中框架的第N个顺序,以防有其他框架。
找到该路径后,您可以通过从iFrame中获取指向该iFrame的路径,与该iFrame上的子元素进行交互。
一些需要注意的事情。帧尚未加载,因此请确保加载了所需的帧,并且在运行时没有其他帧在屏幕上移动它。另外,确保子帧在同一个域中,我认为调用javascript在跨域时会有问题,即它不能工作(在那里需要更正,但可能取决于组设置)
提供一些代码或页面布局,并可以给您一个代码示例,但在我的头顶上,格式将如下所示
var doc=window.frame[0] 变量事物=getElementById(doc.getElementByPath(‘maybePath’)‘对您需要的内容执行一些设置操作,如设置innerhtml
相关文章