我正在使用bPopup插件打开一个iframe
插件在两个单独的页面上
我写了一个小脚本来创建 iframe 并“弹出它”。我的两个页面都引用了相同的脚本(确切的 URL 等):
jQuery('#student_iframe_container').css({
'display': 'none'
});
jQuery('body').on("click", ".student_iframe_popup", function() {
jQuery('#student_iframe_container').remove();
var popUpHTML = '<div id="student_iframe_container"><div class="b-close"><img src="/user/74/187888.png" title="Close" /></div><iframe></iframe></div>';
jQuery('body').append(popUpHTML);
jQuery('.b-close').css({
'background-color': 'none',
'padding': '8px',
'font-size': '14px',
'font-weight': 'bold',
'width': '52px',
'text-align': 'center',
'cursor': 'pointer',
'overflow' : 'auto'
});
jQuery('iframe').css({
'margin': '0px auto',
'background-color': 'none',
'border': 'none'
});
var student_id = 'student_' + jQuery(this).attr("id");
jQuery('iframe').attr("width", 800);
jQuery('iframe').attr("height", 670);
jQuery('iframe').attr("id", student_id);
jQuery('iframe').attr("src", '/index.phtml?d=825090');
jQuery('#student_iframe_container').bPopup({
position: ['auto', 2]
});
});
这个脚本的想法是我可以打<a href="javascript:void(0);" class="student_iframe_popup" id="123456">student</a>
进入我的页面,然后脚本会完成剩下的工作。
在我的两个页面上,弹出窗口iframe
都能正常工作。问题在于对齐:在一页上iframe
正确显示为水平居中对齐,但在另一页上显示为左对齐。
正确对齐分配标志页面
我的标志上的不正确对齐页面
如果我查看 FireBug 中的 HTML,它会相当混乱:
分配标志:
<div class="b-modal __b-popup1__" style="background-color: rgb(0, 0, 0); position: fixed; top: 0px; right: 0px; bottom: 0px; left: 0px; opacity: 0.7; z-index: 9998; cursor: pointer;"></div>
<div id="student_iframe_container" style="left: 48.5px; position: absolute; top: 2px; z-index: 9999; opacity: 1; display: block;">
<div class="b-close" style="padding: 8px; font-size: 14px; font-weight: bold; width: 52px; text-align: center; cursor: pointer; overflow: auto;">
<img title="Close" src="/user/74/187888.png">
</div>
<iframe width="800" height="670" style="margin: 0px auto; border: medium none;" id="student_138871" src="/index.phtml?d=825090"></iframe>
</div>
该类student_iframe_popup
用于这段 HTML:
<li>
<a id="138929" class="student_iframe_popup" href="javascript:void(0);">Student Name</a>
<div>23<img alt="Red Flags" src="/user/74/187894.png"> 0<img alt="Interventions" src="/user/74/187895.png"></div>
</li>
我的标志:
<div class="b-modal __b-popup1__" style="background-color: rgb(0, 0, 0); position: fixed; top: 0px; right: 0px; bottom: 0px; left: 0px; opacity: 0.7; z-index: 9998; cursor: pointer;"></div>
<div id="student_iframe_container" style="left: 0px; position: absolute; top: 2px; z-index: 9999; opacity: 1;">
<div class="b-close" style="padding: 8px; font-size: 14px; font-weight: bold; width: 52px; text-align: center; cursor: pointer; overflow: auto;">
<img title="Close" src="/user/74/187888.png">
</div>
<iframe width="800" height="670" style="margin: 0px auto; border: medium none;" id="student_138978" src="/index.phtml?d=825090"></iframe>
</div>
该类student_iframe_popup
用于这段 HTML:
<tr class="open">
<td class="student">
<a id="138978" class="student_iframe_popup" href="javascript:void(0);">Student Name</a>
</td>
<td>2nd Oct 2013</td>
<td>10:24am</td>
<td>IT Misuse</td>
<td>Behaviour Unit</td>
<td>Registration</td>
<td>Referred to tutor</td>
<td id="1994"><select><option value="O">Pending</option><option value="C">Completed</option></select></td>
<td rowspan="2" class="centre"><img title="Notify administrator of mistake made on Flag given to Joshua Nichol?" src="/user/74/187888.png" id="1994"></td>
</tr>
关联的 CSS:
#container table { width: 100%; }
#container table img { width: 16px; }
#container th { text-align: left; border-bottom: 2px solid #999; padding-bottom: 2px; text-transform: uppercase; font-weight: normal; font-size: 10px; }
#container tr.open { background-color: #ffd6d6; }
#container tr.no_action { background-color: #ffead6; }
#container td { padding: 8px 0 4px 0; font-size: 12px; }
#container tr.border td { border-bottom: 1px solid #999; padding: 4px 0 8px 0; font-size: 11px; }
.student { font-weight: bold; padding-left: 5px; }
显然,差异在于以下几行:
正确的...
<div id="student_iframe_container" style="left: 48.5px; position: absolute; top: 2px; z-index: 9999; opacity: 1; display: block;">
错误的...
<div id="student_iframe_container" style="left: 0px; position: absolute; top: 2px; z-index: 9999; opacity: 1;">
然而,编写这些样式的不是我——它是 bPopup。我的两个页面都没有任何与 bPopup 相关的 CSS 样式;我唯一要更改的是本文顶部的 JavaScript 文件中的那些。
因此,有谁知道为什么 bPopup 决定left:0px
在一个页面上和left:48.5px
另一个页面上?