这是链接:
<a href="javascript://" onClick="print_gonder();"><img src="/images/print.gif" title="Gönder" border="0"></a>
及其功能print_gonder:
function print_gonder()
{
var satirsayisi=document.list_basketww.row_count.value;
var amnt=new Array(satirsayisi);
var prc=new Array(satirsayisi);
var kdv=new Array(satirsayisi);
var kon=new Array(satirsayisi);
var yap=new Array(satirsayisi);
var ona=new Array(satirsayisi);
var ode=new Array(satirsayisi);
var tes=new Array(satirsayisi);
for (i=0; i<satirsayisi; i++)
{
amnt[i]=eval("document.getElementById('amount" + (i+1) + "')").value;
prc[i]=filterNum(eval("document.getElementById('price" + (i+1) + "')").value);
kdv[i]=eval("document.getElementById('tax_dif" + (i+1) + "')").value;
kon=eval("document.getElementById('konu')").value;
yap=eval("document.getElementById('yapan')").value;
ona=eval("document.getElementById('onay')").value;
ode=eval("document.getElementById('odeme')").value;
tes=eval("document.getElementById('teslim')").value;
}
windowopen('<cfoutput>#request.self#?fuseaction=objects2.popup_sale_propose&print=true#page_code#&amnt='+amnt+'&prc='+prc+'&kdv='+kdv+'&konu='+kon+'&yapan='+yap+'&onay='+ona+'&odeme='+ode+'&teslim='+tes+'</cfoutput>','page');
}
问题是这个链接在FF中不起作用但在IE中工作,但如果我将函数改为这样的:
<a href="javascript://" onClick="<cfoutput>windowopen('#request.self#?fuseaction=objects2.popup_sale_propose&print=true#page_code#','page')</cfoutput"><img src="/images/print.gif" title="Gönder" border="0"></a>
它完全适用于所有浏览器..我认为问题在于定义函数的值,FF只是不理解它们...... 顺便说一句,系统是Workcube,它使用Cold Fusion。
答案 0 :(得分:2)
你的代码在很多方面都是完全错误的。
反而有这样的事情:
var satirsayisi = parseInt(document.getElementById("row_count").value, 10);
var amntArr = new Array();
var prcArr = new Array();
var kdvArr = new Array();
var kon = document.getElementById('konu').value;
var yap = document.getElementById('yapan').value;
var ona = document.getElementById('onay').value;
var ode = document.getElementById('odeme').value;
var tes = document.getElementById('teslim').value;
for (i = 0; i < satirsayisi; i++)
{
amntArr.push(document.getElementById('amount' + (i+1)).value);
prcArr.push(document.getElementById('price' + (i+1)).value);
kdvArr.push(document.getElementById('tax_dif' + (i+1)).value);
}
var amnt = amntArr.join(",");
var prc = prcArr.join(",");
var kdv = kdvArr.join(",");
这假设“row_count”是带有计数的输入元素的ID。
对于记录,它在FF中不起作用的直接原因是因为它没有document.all
个东西,你不能直接通过文档访问DOM元素。
答案 1 :(得分:0)
请试试这个:
<a href="#" onClick="return print_gonder();"><img src="/images/print.gif" title="Gönder" border="0"></a>
并添加
return false
到函数的末尾
UPDATE尝试修复一些不良代码:
function print_gonder() {
var satirsayisi=document.list_basketww.row_count.value;
var amnt=[];
var prc=[];
var kdv=[];
var kon=[];
var yap=[];
var ona=[];
var ode=[];
var tes=[];
for (i=0; i<satirsayisi; i++) {
amnt[i]=document.getElementById('amount' + (i+1)).value;
prc[i]=filterNum(document.getElementById('price' + (i+1)).value);
kdv[i]=document.getElementById('tax_dif' + (i+1)).value;
kon[i]=document.getElementById('konu').value;
yap[i]=document.getElementById('yapan').value;
ona[i]=document.getElementById('onay').value;
ode[i]=document.getElementById('odeme').value;
tes[i]=document.getElementById('teslim').value;
}
var url = '<cfoutput>#request.self#?fuseaction=objects2.popup_sale_propose&print=true#page_code#</cfoutput>';
url += '&amnt='+amnt+'&prc='+prc+'&kdv='+kdv+'&konu='+kon+'&yapan='+yap+'&onay='+ona+'&odeme='+ode+'&teslim='+tes;
windowopen(url,'page');
return false;
}
答案 2 :(得分:-1)
onclick
孩子可能会抓住<img>
并且没有正确开枪。要修复,将事件移动到子元素可能会有效。
试试这个:
<a href="#" >
<img src="/images/print.gif" onClick="print_gonder();" title="Gönder" border="0">
</a>
更好的是,删除<a>
并让图片可以点击。添加一些CSS,你就可以了。