You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何JavaScript实体无法生效?(涉及property=&{JavaScript-statements};语法)

问题原因与解决方案

问题根源

你用的&{getWidth()};这种JavaScript实体语法是早期Netscape浏览器的非标准特性,现在所有现代浏览器都已完全废弃,浏览器根本不会解析该语法,所以getWidth()和getHeight()函数从未被调用,自然不会弹出输入框。

现代浏览器兼容的解决方案

改用标准DOM操作实现需求,以下是修改后的代码:

<HTML>
<HEAD><TITLE>Entities Example</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--HIDE
function getWidth(){
  // 用Number转换替代eval,避免安全风险
  var w = Number(prompt("Enter image width:"))
  // 处理用户取消输入或输入无效的情况
  return isNaN(w) ? 200 : w
}

function getHeight(){
  var h = Number(prompt("Enter image height:"))
  return isNaN(h) ? 200 : h
}

// 页面加载完成后执行逻辑,确保能获取到图片元素
window.onload = function() {
  var img = document.getElementById("targetImg")
  img.width = getWidth()
  img.height = getHeight()
}
//STOP HIDING-->
</SCRIPT></HEAD><BODY>
<CENTER><IMG ID="targetImg" SRC="gun1.jpg">
</CENTER></BODY></HTML>

关键修改点

  • 给图片标签添加ID="targetImg",方便通过JS定位DOM元素
  • 使用window.onload确保页面元素加载完成后再执行逻辑,避免找不到图片元素
  • 用Number()替代eval()处理用户输入,消除代码注入风险,同时兼容用户取消输入、输入非数字的情况
  • 直接通过DOM操作设置图片的width和height属性,替代已废弃的实体语法

内容的提问来源于stack exchange,提问作者Content Deleted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 19:48:04