一個普通的javascrip函數,只有一個入口參數
復制代碼 代碼如下:
function test(info)
<img none';="" document.getelementbyid('_20_37_open_text').style.display="none" ;="" document.getelementbyid('_20_37_closed_image').style.display="inline" document.getelementbyid('_20_37_closed_text').style.display="inline" ;"="" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" style="border: 0px; max-width: 100%; ">{
alert(info);
}
頁面用是aspx代碼生成,調用test函數的入口參數可能是一個很長的字符串,同時頁面上根據一個數據集構造很多如下所示的標簽。
復制代碼 代碼如下:
<a href="javascript:test('ssssss...這裡很長..ssssss')">test</a>
頁面生成後有些鏈接可以點,有些不能點。用substring大致對入口參數的值處理了一下,發現不能超過2083個字符。難道js的函數參數有長度限制?從來沒有聽說過。也沒有查到相關的說法。
試著把<a>標簽,換為<button>然後再clik事件裡調用這個js函數,參數傳了全部的長度,發現沒有錯誤了...
這下頓悟,原來是<a href>惹的禍,<a href>是使用get傳遞參數,url無論如何都有2k的長度限制。即便是在這種情況下掉js函數也不能超過。