javascript with() 函数在 Opera、Chrome 或 Brave 中不起作用

标签 javascript html css

我继承了一个使用 js with() 函数的 HTML 表单:

with (document.images.myImage.style) {
    left = x + "px";
    top  = y + "px";
    visibility = "visible";     
}

此代码根据左侧/顶部设置“移动”图形上的图像。

移动在 Firefox、IE 和 Edge 中是正常的,但在其他浏览器中则不然...我对 js 不够熟悉,无法重新编码,所以它在所有浏览器中都能正常工作。

有人对如何重新编码有建议吗?

最佳答案

with is a statement ,就像一个 for 循环,而不是一个函数。 with 的作用是允许您引用对象的属性,而无需每次都键入对象名称。

with(myObj) {
  x = y;
}

相同
myObj.x = myObj.y;

但是它在严格模式下是不允许的,也不应该在非严格模式下使用(往往是很多错误的来源)。因此,要翻译任何 with 代码,只需在来自对象的任何值前面加上实际对象的前缀。

document.images.myImage.style.left = x + 'px';
document.images.myImage.style.top = y + 'px';
document.images.myImage.style.visibility = 'visible';

关于javascript with() 函数在 Opera、Chrome 或 Brave 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36560568/

相关文章:

javascript - 组件未渲染 React.js 中的组件列表

javascript - 将 JSON 转换为 CSV,并让 Headers 成为父级的串联

Javascript 有条件地构建 mvc actionlink

html - 背景图像垂直滚动但粘在容器的一侧

html - 引导网格 1 太小 2 太宽

javascript - 关于 javascript 范围的澄清

javascript - 为什么在 Vue.js 或 React 中使用组件?

css - 将复选框左对齐

html - 在伪类 unicode 字符在 mobile/iOS 上出现不同之前

javascript - jQuery each - 第一个变量在(某些)刷新时没有获得宽度值