期待高人解决,js传值有时会失效!在线等,速度结.请大家耐心看后面的操作和帮忙拷贝代码测试

szc21 2006-10-12 10:02:52
<html>
<head>
<script language="javascript">
function changeImg(imgAdr) {
var imgObj=document.getElementById('Image1');
imgObj.removeAttribute("width");
imgObj.removeAttribute("height");
imgObj.style.display="";
imgObj.src=imgAdr;
if(imgObj.width<172&&imgObj.height<400)
{
return;
}
else
{
if(imgObj.width/172>imgObj.height/400)
{
imgObj.width =172;
imgObj.height =imgObj.height * 172/imgObj.width;
}
else
{
imgObj.width =imgObj.width * 400 / imgObj.height;
imgObj.height =400;
}
}
}
</script>
</head>
<body>
<input id="uploadfile1" type="file" onchange="changeImg(uploadfile1.value)">
<img id="Image1" style="display:none">
</body>
</html>
-----------------------------------------
上面代码用途:选择一个图片,大小不合适就按比率缩小显示.
这样操作:先选择一张符合条件的图片a.jpg,然后再选择一张不符合的b.jpg;如此的循环,a>b>a>b...;发现有时候选择b(不符合)的时候变成符合了. 没有按比率缩小.

通过我在其中添加alert()发现有时候选择b的时候,imgObj.width等变量的取值是a的.只有在 
   imgObj.removeAttribute("width");
imgObj.removeAttribute("height");
后面随便加一句alert();它的值才会正确.
十分不解.期待高人解决.

...全文
291 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cho__cho 2006-10-12
  • 打赏
  • 举报
回复

在我这里是能下常运行的呀

这样操作:先选择一张符合条件的图片a.jpg,然后再选择一张不符合的b.jpg;如此的循环,a>b>a>b...;发现有时候选择b(不符合)的时候变成符合了. 没有按比率缩小.

没有你说的这种现象

应该是浏览器的问题,待解决
hejunbin 2006-10-12
  • 打赏
  • 举报
回复
<script language="javascript">
var imgObj;
function changeImg1(dfd){
alert(dfd);
}
function changeImg(imgAdr) {
imgObj=document.getElementById('Image1');
//imgObj.removeAttribute("width");
//imgObj.removeAttribute("height");
imgObj.style.display="";
imgObj.src=imgAdr;
if(imgObj.width<172&&imgObj.height<400)
{
return;
}
else
{
if(imgObj.width/172>imgObj.height/400)
{
imgObj.width =172;
imgObj.height =imgObj.height * 172/imgObj.width;
}
else
{
imgObj.width =imgObj.width * 400 / imgObj.height;
imgObj.height =400;
}
}
}
</script>

这样试了一下,不知道是否符合楼主的意思O.0
szc21 2006-10-12
  • 打赏
  • 举报
回复
fosjos(无聊的菜鸟程序员) ( ) 信誉:100 Blog
----------------------------------------------------------
你的测试过,正确,我测试下 梅老大的,马上结贴!谢谢各位
meizz 2006-10-12
  • 打赏
  • 举报
回复
取值的时候用 imgObj.offsetWidth 赋值用 imgObj.width
因为 <img> 的宽度值不一定是图片实际的宽度,高度同
lantersen 2006-10-12
  • 打赏
  • 举报
回复
你试着断点调试下吧:

<html>
<head>
<script language="javascript">

function changeImg(imgAdr)
{
var imgObj=document.getElementById('Image1');
imgObj.removeAttribute("width");
imgObj.removeAttribute("height");
imgObj.style.display = "";
imgObj.src = imgAdr;


if(imgObj.width<172&&imgObj.height<400)
{
return false;
}
else
{
if(imgObj.width/172>imgObj.height/400)
{
alert('满足这条件!');
imgObj.width = 172;
imgObj.height = imgObj.height * 172/imgObj.width;
}
else
{
imgObj.width = imgObj.width * 400 / imgObj.height;
imgObj.height = 400;
}
}

}

</script>
</head>
<body>
<input id="uploadfile1" type="file" onchange="changeImg(uploadfile1.value)">
<img id="Image1" style="display:none">
</body>
</html>
fosjos 2006-10-12
  • 打赏
  • 举报
回复
把设置高度宽度在img的onload里执行如何

function changeImg(imgAdr) {
...
imgObj.style.display="";
imgObj.src=imgAdr;
}
function loadImg(imgObj){
if(imgObj.width<172&&imgObj.height<400)
{ alert()
return;
}
else
{
if(imgObj.width/172>imgObj.height/400)
...

<img id="Image1" style="display:none" onload="loadImg(this)">
hejunbin 2006-10-12
  • 打赏
  • 举报
回复
<html>
<head>
<script language="javascript">
var imgObj;
function changeImg1(dfd){
alert(dfd);
}
function changeImg(imgAdr) {
imgObj=document.getElementById('Image1');
imgObj.removeAttribute("width");
imgObj.removeAttribute("height");
imgObj.style.display="";
imgObj.src=imgAdr;
if(imgObj.width<172&&imgObj.height<400)
{
return;
}
else
{
if(imgObj.width/172>imgObj.height/400)
{
imgObj.width =172;
imgObj.height =imgObj.height * 172/imgObj.width;
}
else
{
imgObj.width =imgObj.width * 400 / imgObj.height;
imgObj.height =400;
}
}
}
</script>
</head>
<body>
<input id="uploadfile1" type="file" onChange="changeImg(uploadfile1.value)">
<img id="Image1" style="display:none">
</body>
</html>
szc21 2006-10-12
  • 打赏
  • 举报
回复
谢谢,顶也有分的,注意是 html页面.我也估计是浏览器的缓存,但不知道如何解决.
wshuangminlg 2006-10-12
  • 打赏
  • 举报
回复
OutputCache

帮LZ顶
内容概要:本文围绕基于两阶段鲁棒优化算法的微网多电源容量配置问题展开研究,针对微电网中风能、光伏、柴油发电机及储能系统等多元电源的容量规划难题,提出了一种能够有效应对源荷不确定性的优化方法。该方法采用两阶段鲁棒优化框架,第一阶段确定电源的最优配置容量,第二阶段通过调整运行策略应对不确定性扰动,从而提升系统在复杂环境下的适应性与经济性。文中合Matlab实现了完整的算法建模与仿真验证,提供了清晰的代码实现路径,展示了模型在典型场景下的求解过程与果分析,具有较强的工程应用价值。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事新能源、微电网、优化调度等相关领域的科研人员及研究生。; 使用场景及目标:①解决含高比例可再生能源的微电网系统中电源容量配置的鲁棒性问题;②掌握两阶段鲁棒优化建模方法及其在能源系统中的实际应用;③为应对源荷不确定性提供可复现的技术方案与仿真工具支持; 阅读建议:此资源侧重于算法建模与实际仿真相合,建议读者在理解鲁棒优化基本理论的基础上,合Matlab代码逐模块分析,重点掌握不确定集构建、列与约束生成(C&CG)算法实现以及运行果的经济性与可靠性评估方法,以实现从理论到实践的贯通。

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧