选择iframe内的内容

时间:2013-07-02 16:55:25

标签: javascript jquery

我正在开发的项目的设计有实时聊天插件和标题上的图像,显​​示在线/离线。我正在努力编写脚本,当代理在线时将放置“在线”图像。

插件的标题显示状态,如此

<span __jx__id="___1_livehelpbutton__agentstatus" class="agentStatus" style>Offline</span>

我想获取标签的innerHTML并在if语句的条件下使用它,如果状态为“online”将显示“在线”图像,否则显示离线图像。这就是我遇到问题的地方。我在选择此标签时遇到问题。当我在控制台上尝试这个时,我得到[]并且屏幕上没有任何变化。

$('.agentStatus').css('background','red');

当作为CSS页面上的测试时,我尝试.agentStatus {background:red; },背景变成红色。

它所在的iframe没有不同的网址:

<iframe __jx__id="___$13__iframe src="javascript:void(document.write('<!DOCTYPE HTML PUBLIC -//W3C//DTD HTM…order-box}</style></head><body></body></html>'), document.close())" frameborder="0" style=" background-color: transparent; vertical-align: text-bottom; overflow: hidden; position: relative; width: 100%; height: 100%; margin: 0px; z-index: 999999;">
    #document
        <!DOCTYPE html PUBLIC"-W3C//DTD HTML 4.0 Transitional/EN" "http:www.w3.org/TR/html4/loose.dtd"
            <html style="overflow-y: hidden">
                 ...

1 个答案:

答案 0 :(得分:3)

问题是,如果没有先抓取iframe正在显示的文档,您就无法访问iframe中的内容。

post比我更好地解释了这一点。

在JavaScript或jQuery中没有实际的方法,除非iframe的源位于同一个域(研究“跨域和JavaScript”)。但是,如果它们位于同一个域中,您应该能够使用以下选项(和操作)元素:

$("#iframeID").contents().find(".agentStatus").css("background", "red");

post也显示了一些替代解决方案。