首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何让eval在IE中正常运行?

如何让eval在IE中正常运行?
EN

Stack Overflow用户
提问于 2009-05-29 02:22:26
回答 4查看 238关注 0票数 0

我有以下几点:

代码语言:javascript
代码运行次数:0
运行
复制
<select id="price_select"></select>

我有一个事件处理程序,它调用以下代码:

代码语言:javascript
代码运行次数:0
运行
复制
var selected_option = "one";
var option_one = "<option>Option Contents</option>";
document.getElementById('price_select').innerHTML = eval('option_' + selected_option);

在火狐中运行良好,但在IE6中就不行了。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-05-29 02:26:59

你不能做这样的事情吗?

代码语言:javascript
代码运行次数:0
运行
复制
var selected_option = "one";
var options = { "one": "<option>Option Contents</option>" };
document.getElementById('price_select').innerHTML = options[selected_option];
票数 4
EN

Stack Overflow用户

发布于 2009-05-29 02:52:21

根据marknt15MartinodF的说法,您应该能够在不使用eval()的情况下使用原生DOM操作来完成您想要做的事情。

代码语言:javascript
代码运行次数:0
运行
复制
var selected_option = "one";
var options = { "one": {"value": "0", "text":"OptionContents"}  };
var e = document.createElement("option");

if(e.innerText) {// IE sets innerText like this
    e.innerText = options[selected_option].text;
} else { // W3C sets inner text like this
    e.childNodes[0].nodeValue = options[selected_option].text;
}

e.value = options[selected_option].value;

document.getElementById('price_select').appendChild(e);

您可能希望考虑使用功能齐全的JavaScript框架,如jQuery或Prototype,以使这类事情更易于处理。

票数 2
EN

Stack Overflow用户

发布于 2009-05-29 02:30:42

innerHTML在IE6下拉菜单中不起作用,因为它是一个错误。

eval()在IE 6中可以工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/924135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档