我有一个页面,可以在sharepoint中作为弹出页面打开。现在打开页面弹出时我想要修改一些css。发生的事情是代码能够成功修改标签元素,但无法修改.ms-dlgTitleText,它是窗口共享点打开,它保存页面并位于保存页面的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>
答案 0 :(得分:0)
在对话框选项中,您可以将参数传递给对话框。可以找到here的示例。
在页面加载本身时,我会检查参数是否可用,然后用ex替换你的页面css。 jQuery的帮助。
答案 1 :(得分:0)
在我看来,您想要做的是使用iframe中的脚本修改“父”页面。除非两个页面来自同一主机,相同端口并使用相同的协议,否则这是不可能的。如果是这种情况,您可以使用parent.document.getElementById()
,或者在您的情况下可能更方便parent.document.getElementsByClassName()
。
如果情况并非如此(如果您的网页来自不同的主机,端口或不同的协议),您必须使用window.postMessage
在iframe和您的父文档之间进行通信。
非常similar question已经回答了。我建议你试一试。
希望它有所帮助!