旧的Javascript语法

时间:2017-10-10 20:39:09

标签: javascript internet-explorer-8

我正在开发遗留应用。有人可以告诉我下面的每行代码在旧浏览器中返回的内容,以便我可以转换为正确的升级语法。

// form-name and input-name is just an example for a form annd input field
form-name.input-name.value 
form-name.input-name.returnValue // How is this different than the one above
form-name.input-name.setValue() //  I believe this sets the value

输入是输入文本字段。此外,代码非常具体IE。下面是一个如何首先选择输入然后在其上调用这些属性的示例。

function GetInputFieldById(id) {
    return window.document.all(id)
}

var name = GetInputFieldById('name4308').returnValue;

你可以告诉它已经太老了,他们可能刚刚使用了getElementById(),但不确定它是不是标准规范的一部分。此外,在返回输入后,以相同的方式调用setValue()。

1 个答案:

答案 0 :(得分:0)

我强烈建议您查看MDN。这是一个很棒的JavaScript参考。注意:不推荐使用以下两个功能。他们无法保证以任何方式工作。我提供了一个现代的替代方案,您应该转而使用。

returnValue

如上所述on MDN

  

Event.returnValue属性指示是否已阻止此事件的默认操作。默认设置为true,允许执行默认操作。将此属性设置为false可防止默认操作。

基本上,这意味着"这个动作会涓涓细流吗?"可以在多个级别处理事件。例如,单击按钮也可以注册为表单上的单击。在某些较旧的浏览器中,您可以将returnValue设置为false以防止这种情况发生。

在现代浏览器中,您可以调用preventDefault。例如:

input.addEventListener('click', function(e) {
  e.preventDefault();
  // do whatever...
});

或者,这可能与returnValue on an HTMLDialogElement有关。这是一种实验性技术,在某些浏览器中,它允许您打开对话框窗口并指定与其交互时应返回的值。如果您遇到这种情况,您很可能希望找到或创建一个不同的模态系统,并以适合该实现的任何形式使用这些值。

setValue(...)

我无法找到对该函数的任何引用,但我的有根据的猜测是,它是一种在文本输入等元素上设置值的非标准方法。在现代使用中,这将通过以下方式完成:

input.value = whateverYouWant;