链接在FF中不起作用

时间:2011-01-04 08:25:30

标签: javascript internet-explorer firefox coldfusion hyperlink

这是链接:

<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。

3 个答案:

答案 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,你就可以了。