Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从SharePoint Online中的内容中影响iFrame CSS_Javascript_Html_Css_Iframe_Sharepoint - Fatal编程技术网

Javascript 从SharePoint Online中的内容中影响iFrame CSS

Javascript 从SharePoint Online中的内容中影响iFrame CSS,javascript,html,css,iframe,sharepoint,Javascript,Html,Css,Iframe,Sharepoint,我正在使用以下标准代码生成一个模态表单: function openMyForm() { SP.UI.ModalDialog.showModalDialog({ url: currentSite + "/SiteAssets/myForm.aspx" title: "My Form", allowMaximize: false, showClose: true, width: 1000, height: 600 }); }

我正在使用以下标准代码生成一个模态表单:

function openMyForm() { 
  SP.UI.ModalDialog.showModalDialog({ 
    url: currentSite + "/SiteAssets/myForm.aspx" 
    title: "My Form", 
    allowMaximize: false, 
    showClose: true, 
    width: 1000,  
    height: 600
  }); 
}
但是CSS存在问题-关闭按钮位置关闭:

该问题可追溯到以下CSS:

.ms-dlgTitleBtns {
  margin-top: -10px;
  margin-right: -18px;
  height: 30px;
  float: right;
}
具体来说,右边的边距应该是0px

myForm.aspx位于SharePoint生成的iFrame中,其中包含上述CSS。我如何更改该值或以其他方式使关闭按钮位于正确的位置。即:

我试着加上

.ms-dlgTitleBtns {
  margin-right: 0px !important;
}


到myForm.aspx,但当然由于iFrame没有效果。

如果iFrame与外部页面来自同一站点,您可以通过以下方式访问它:

  $('#iframeId').contents()

ms dlgTitleBtns
中有问题的元素位于宿主页面上,而不是表单本身;将自定义脚本/CSS放在同一页面上可以避免通过iframe修改不同页面上的内容

您可以将JavaScript/CSS添加到打开对话框的页面,而不是添加到表单本身


(只需确保在实施更改后正确刷新app.js文件即可。)

Thriggle正确,对话框框架来自托管sharepoint页面,而不是您的表单。您可以使用主页上的脚本编辑器调整样式。

它位于同一个站点,但似乎没有Id:我尝试过:$('iframe').contents().find('ms dlgTitleBtns').css('margin-right','0px');在没有结果的情况下,将其放入控制台--哪个部分不工作?例如,
$('iframe').contents()
是否有值?$('iframe').contents()返回:未捕获的DomeException:未能从“HtmlFrameElement”读取“contentDocument”属性:阻止源代码为“example.com”的帧访问跨源帧。看起来iframe不是(1)您想要的帧(是否有多个)或(2)与您的页面不是从同一服务器提供的。我假设您将其更改为example.com——在实际错误中,浏览器中的URL是否与iframe中的URL匹配?您是否能够向打开对话框的页面添加内容(而不是仅在表单上)?是的,我能够编辑打开对话框的页面的内容。我没有尝试过从模式对话框表单编辑该内容,如果这是你的意思…你尝试过将CSS嵌入其中而不是表单上吗?只是尝试过。不确定确切位置,但它尝试了$(“.ms dlgTitleBtns”).CSS(“右边距”,“0”);和$(#dlgTitleBtns”).css(“右边距”,“0”);在SP.UI.ModalDialog.showmodaldialdialog调用后和回调中。未看到任何效果。@Thriggle在正确刷新我的app.js文件后,我使其正常工作-谢谢!!
  $('#iframeId').contents()