有没有办法让谷歌驱动器选择器显示在自定义模式或 div 中?我有一个模式,用户可以选择多个提供商,例如谷歌、保管箱。该模式包含其中的所有 js 和 css 文件。所以当我点击谷歌驱动器时,选择器iframe
嵌入到body
我的模态中和后面,尽管我的模态 z-index 是 1030 并且选择器iframe
zindex 是 2292。
问问题
4079 次
4 回答
8
我只是添加了以下 CSS:
.picker-dialog-bg {
z-index: 20000 !important;
}
.picker-dialog {
z-index: 20001 !important;
}
于 2015-10-12T13:39:42.123 回答
7
我通过使用以下代码在前面设置谷歌选择器容器解决了这个问题:
var picker = new google.picker.PickerBuilder()
.enableFeature(google.picker.Feature.NAV_HIDDEN)
.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
.setAppId(appId)
.setOAuthToken(oauthToken)
.addView(view)
.addView(new google.picker.DocsUploadView())
.setDeveloperKey(developerKey)
.build();
if (callback)
picker.setCallback(callback);
picker.setVisible(true);
//I put this code to make the container in front.
var elements= document.getElementsByClassName('picker-dialog');
for(var i=0;i<elements.length;i++)
{
elements[i].style.zIndex = "2000";
}
于 2015-08-01T10:21:18.390 回答
4
实际上,您可以在将选取器对象设置为可见后对其进行操作。如果 picker 是 GooglePicker 对象,则 A 是div
对话框模式的。您可以使用 JavaScript 设置它的 z-index。
var picker = new google.picker.PickerBuilder().
addView(self.viewId).
setOAuthToken(self.oauthToken).
setDeveloperKey(self.developerKey).
setCallback(self.pickerCallback).
build();
picker.setVisible(true);
picker.A.style.zIndex = 2000;
于 2014-07-03T17:48:44.370 回答
1
好的,找到了一个解决方案,如选择器参考指南中所述,有一个函数PickerBuilder.toUri()
将返回构建器生成的 URI。所以我们可以使用这个 URI 并在我们自己的 iframe 中使用它:
function createPicker() {
var picker = new google.picker.PickerBuilder()
.addView(google.picker.ViewId.DOCUMENTS)
.addView(google.picker.ViewId.PRESENTATIONS)
.addView(google.picker.ViewId.SPREADSHEETS)
.addView(google.picker.ViewId.PDFS)
.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
.setAppId(appID)
.setOAuthToken(ACCESS_TOKEN)
.setDeveloperKey(developerKey)
.setCallback(pickerCallback)
.toUri();
var iframe = $('<iframe frameborder="0" marginwidth="0" marginheight="0" allowfullscreen></iframe>');
iframe.attr({
width: 500,
height: 500,
src: picker
});
$("<div></div>").append(iframe).appendTo("#my_container");
}
于 2014-05-12T20:09:20.253 回答