求大侠帮忙看看js不能给父页面的select动态添加option的问题 10
我在父页面a.html中用window.open("b.html");打开b页面,然后在b页面做了一些操作后,想动态给父页面a中的select添加几个option:var...
我在父页面a.html中用window.open("b.html");打开b页面,然后在b页面做了一些操作后,想动态给父页面a中的select添加几个option:
var select= opener.document.getElementById("aaa");
var newOption = document.createElement("option");-----------(1)
select.options.add(newOption);
newOption.value = "日";
newOption.text = "日";
var newOption2 = document.createElement("option");-----------(2)
select.options.add(newOption2);
newOption2.value = "月";
newOption2.text = "月";
在ie11中执行到标红的(1)处就会报错:不支持此接口
测试了一下,如果在当前页面用这样的语句是可以正常添加option的,但给父页面添加就不行,也不知道是什么原因,求各位大侠帮忙看看,万分感谢!
已解决,有三种方案:
1、不是添加option对象,而是直接添加拼装好的字符串到父页面的select中。
2、在父页面加一个添加option的函数用于执行上述代码的操作,然后在子页面将参数传到如页面调用父页面的函数来添加。
3、将上面的var newOption = document.createElement("option");
改为:var newOption = opener.document.createElement("option");option对象必须在父页面中创建才能用add添加到父页面的select中。。。 展开
var select= opener.document.getElementById("aaa");
var newOption = document.createElement("option");-----------(1)
select.options.add(newOption);
newOption.value = "日";
newOption.text = "日";
var newOption2 = document.createElement("option");-----------(2)
select.options.add(newOption2);
newOption2.value = "月";
newOption2.text = "月";
在ie11中执行到标红的(1)处就会报错:不支持此接口
测试了一下,如果在当前页面用这样的语句是可以正常添加option的,但给父页面添加就不行,也不知道是什么原因,求各位大侠帮忙看看,万分感谢!
已解决,有三种方案:
1、不是添加option对象,而是直接添加拼装好的字符串到父页面的select中。
2、在父页面加一个添加option的函数用于执行上述代码的操作,然后在子页面将参数传到如页面调用父页面的函数来添加。
3、将上面的var newOption = document.createElement("option");
改为:var newOption = opener.document.createElement("option");option对象必须在父页面中创建才能用add添加到父页面的select中。。。 展开
1个回答
展开全部
先获取到父页面才可以
var select= window.parent.window.document.getElementById("aaa");
var newOption = document.createElement("option");-----------(1)
select.options.add(newOption);
newOption.value = "日";
newOption.text = "日";
var newOption2 = document.createElement("option");-----------(2)
select.options.add(newOption2);
newOption2.value = "月";
newOption2.text = "月";
var select= window.parent.window.document.getElementById("aaa");
var newOption = document.createElement("option");-----------(1)
select.options.add(newOption);
newOption.value = "日";
newOption.text = "日";
var newOption2 = document.createElement("option");-----------(2)
select.options.add(newOption2);
newOption2.value = "月";
newOption2.text = "月";
追问
这是不行的,window.open()打开的页面需要用opener才能找到父页面,就算这样找到父页面的select,通过监视看到其类型为DispHTMLSelectElement而非HTMLSelectElement,后者是在本页面查找select标签时的类型,是可以通过上述方法添加option的,而前者却不行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询