Javascript 修改框架元素的css

Javascript 修改框架元素的css,javascript,css,sharepoint,Javascript,Css,Sharepoint,我有一个可以在sharepoint中作为弹出页面打开的页面。现在,当该页面作为弹出页面打开时,我希望修改一些css。发生的情况是,代码能够成功修改label元素,但无法修改.ms dlgTitleText,它是sharepoint打开的保存页面并位于iFrame上方的窗口有人能告诉我我在这里能做什么吗 编辑:我想知道如何使用ms dlgTitle类更改div中的内容 <div class="dialogue> <div class="ms-dlgTitle"> conte

我有一个可以在sharepoint中作为弹出页面打开的页面。现在,当该页面作为弹出页面打开时,我希望修改一些css。发生的情况是,代码能够成功修改label元素,但无法修改.ms dlgTitleText,它是sharepoint打开的保存页面并位于iFrame上方的窗口有人能告诉我我在这里能做什么吗

编辑:我想知道如何使用ms dlgTitle类更改div中的内容

<div class="dialogue>
<div class="ms-dlgTitle">
content
</div>
<div class="dlgframe">

<iframe>
some data

    <script src="/_layouts/1033/jQuery.js" type="text/javascript">
    </script>
    <script type="text/javascript"> 
     $(document).ready(function () 
     {if (window.location.search.match("[?&]IsDlg=1")) 
        {
            alert("doc is ready now"); 
            $('<style type="text/css">.ms-dlgTitle{ width: 200px; } #foo{background:black;                     }</style>').appendTo("head");}});

     function t(){  var options = SP.UI.$create_DialogOptions();options.url =           "http://sharepointhost:2266";options.height =      300;SP.UI.ModalDialog.showModalDialog(options);
                 }
     </script>
    <a class="s" onclick="javascript:t()">k</a> <label title="label1" id="foo">lbl</label>
</iFrame>
</div>

在对话框选项中,您可以向对话框传递参数。这方面的例子可以找到


在页面加载本身上,我会检查参数是否可用,然后使用例如jQuery的帮助更改页面css。

在我看来,您要做的是在iframe中使用脚本修改“父”页面。这是不可能的,除非两个页面来自同一主机、同一端口,并且使用相同的协议。如果是这种情况,您可以使用
parent.document.getElementById()
,或者在您的情况下使用
parent.document.getElementsByClassName()

如果不是这样(如果您的页面来自不同的主机、端口或采用不同的协议),则必须使用
window.postMessage
在iframe和父文档之间进行通信

一个很好的回答。我建议你看看


希望有帮助

我想你可能需要对你的问题描述再详细一点。我不完全清楚上下文是什么。sharepoint中的弹出页面是什么,还是指浏览器中的弹出页面。您是否正在尝试更改iframe中显示内容的样式?因此,发生的情况是,此页面在sharepoint中以模式对话框打开,或者说我们有一个常规页面,然后打开了一个模式对话框。我正在尝试更改iframe外部的内容,并且在加载到iframe的页面中有代码更改了代码,然后添加了div用于解释。感谢您的回复。我不需要任何参数。我想要的是修改保存iFrame的模态框。因为我的页面加载在iFrame中,我添加到style元素的任何样式都不会影响包含页面的iFrame上方的框或div。这正是我正在寻找的例如..您能告诉我如何应用此代码来访问父元素并对其进行更改吗?这是我用来访问iFrame$('.ms dlgTitle{width:200px;}#foo{background:black;}')之外的.ms dlgTitle的jQuery函数$('.ms dlgTitle').addClass('nameOfClassToAdd'),或者如果您想直接设置css而不使用类,我不推荐,$('.ms dlgTitle').css('attribute','value'),我在页面中使用它来修改父容器,如var tt=window.parent.document.getElementById(“dialogTitleSpan”)一文中建议的那样;tt.style.width=“123px”;但这似乎没有任何作用控制台显示了什么吗?检查您的web inspector是否有任何控制台消息,这些消息可能会为您提供可能发生的任何错误的线索。我正在使用此$(“#ms dlgContent”,parent.document).css(“颜色”,“橙色”),它似乎工作得很好。非常感谢您的帮助。