css - IE9 不在下拉列表中打印更改的选项

标签 css printing cross-browser drop-down-menu internet-explorer-9

在 IE9 中的一个简单下拉框中,如果用户更改选择然后尝试打印,打印将呈现原始选项。

说,我有

<option value="">Select one: </option>
<option value="1">Record 1</option>
<option value="2">Record 2</option>
<option value="3">Record 3</option>

默认情况下,当页面加载时,“选择一个:”会显示在此下拉框中。如果我选择“记录 2”,然后打印页面,“选择一个:”将打印在框内,而不是我选择的“记录 2”。

Firefox 可以正确打印。其他版本的 IE 也可以完成这项工作。但我们宁愿不使用兼容性 View :

<meta http-equiv="X-UA-Compatible" content="IE=8" />

因为在这种情况下,虽然选择的值在下拉框中正确显示,但是我们的很多css样式都丢失了。 (例如边界半径)

谁有好的解决办法?谢谢。

最佳答案

这是一个似乎可以解决问题的粗略函数,它需要在您的环境中进行彻底测试,但目前看来还可以:

if ($.browser.msie && parseInt($.browser.version, 10) === 9) {
                $("select").change(function () {
                    var selectedOpt = $(this).find("option:selected");
                    var originalDefaultOption = $(this).find("option[selected]");
                    var text = originalDefaultOption.html();
                    var val = originalDefaultOption.val();

                    originalDefaultOption.after("<option value='" + val + "'>" + text + "</option>");
                    originalDefaultOption.remove();
                    selectedOpt.attr("selected", true);
                });
            }

基本上,IE 不会让您从选项中删除“selected=selected”属性,即使使用 JavaScript 也是如此。所以我只是将原来的默认选项复制到一个新的选项标签中,而不复制'selected'属性,我将'selected'属性放在新点击的选项上。适用于 FF 和 IE9 & 8。

关于css - IE9 不在下拉列表中打印更改的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8747969/

相关文章:

css - 显示 : inline-table equivalent crossbrower

css - 更改按钮的颜色并在悬停时上课

css - 两列 float (右和左)但内容在中间

html - 我想让标记区域响应

java - 无法以正确的分辨率打印

javascript - Google Chrome 未在 "Print"对话框中显示所有纸张尺寸

html - 如何针对 ie7 标准定位 css

css - 无法调整 Bootstrap open-iconic 的大小

java - Android Printer Framework 是否支持蓝牙连接?

javascript - 为什么 Event Object 中存在细微的跨浏览器差异