首页 > 代码库 > js的showModalDialog对字符串的限制
js的showModalDialog对字符串的限制
不知道,大家有没有遇到这样的奇葩问题,当时今天笔者很不幸,遇到这一奇葩的问题,就当使用window.showModalDialog("test.jsp",args,‘dialogHeight=100px;dialogWidth=250px;‘);进行数据传输,当args的数据大于4096个字符时,多出来的数据会被自动截掉,从而导致数据的完整性丢失.
Syntax
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
Parameters
sURL | Required. String that specifies the URL of the document to load and display. |
vArguments | Optional. Variant that specifies the arguments to use when displaying the document. Use this parameter to pass a value of any type, including an array of values. The dialog box can extract the values passed by the caller from the dialogArguments property of the window object. |
The vArguments parameter can be referenced within the modal dialog box using the dialogArguments property of the window object. If the vArguments parameter is defined as a string, the maximum string length that can be passed to the modal dialog box is 4096 characters; longer strings are truncated.
根据MSDN的说法,我们把args弄成object或array就行了,那么对于参数传出和传入的地方都需要修改"接口"的代码,这样一来未免就一些许麻烦。那么能不能让字符串参数突破args的4096个字符的限制呢?
其实对于一个字符串来说,只要我们把它包装成string object,就可以不再args长度的限制了,而且在Modal Dialog中处理字符串的接口函数不需要做任何的修改,如下代码:
function test(id){ var _bpc; jQuery.ajax({ url: 'test.html', data: {'id': id, 'name': name}, type : "POST", async: false, cache : false, dataType : "json", success : function(data) { var result = json_parse(unescape(data)); var selectHTML = []; if(result){ if(result.length == 1){ _bpc = {'id': result[0][0], 'name': result[0][1]}; } else if(result.length > 1){ selectHTML .push('<select name="">'); for(var i = 0, le = result.length; i < le; i++){ var item = result[i]; selectHTML.push('<option id="bpc' + item[0] + '" value=http://www.mamicode.com/"' + item[0] + '">' + item[1] + '');>数据接收页面:<script type="text/javascript" language="javascript"> function finish(){ var sel = document.getElementById('selDiv').firstChild; if(sel){ var selectedItem = sel.options[sel.selectedIndex]; window.returnValue = http://www.mamicode.com/{'id': selectedItem.value, 'name': selectedItem.text};>
js的showModalDialog对字符串的限制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。