【问题标题】:does .innerhtml have max size? [duplicate].innerhtml 有最大尺寸吗? [复制]
【发布时间】:2013-08-20 15:46:10
【问题描述】:

我有以下代码,点击后应该会显示产品详细信息。数据是从数据库中正确获取的,并且在调用 jquery ui 对话框之前我处于警报状态,并且它具有正确的数据。

$("body").append('<div id="popup"></div>');

document.getElementById('popup').innerHTML  = "jk;hcjaskda;ldA;LSDMAKDOIDM;A,MCSCM;lc"sac<'LC;MClmca,.c sm,vnkdc ADVdL:VadMVa;dvadvNsmv S/MV s/vn,Va.<VMA:dvma:DVMa<dv d><v a><d S,CVNDMVaA>VM:LDvm;LVMM,CVMAdv<?.vdm;LDVdvDVadvDVDVVVVVVVVVVVVVVVVVVVVVVVVsvdSV/m,vn,m vmn.,c x V/,.ADMNV/ma,.vm./,vm.,vm,DVkldjfk'ejfwejfqlekfmF;LQEJFQ.L,DK;LKKKKKKKKKKKKKKKKKKKKKKKKKKKKK'LWKF;PWOJVMWPOV";
$( '#popup').dialog({
    modal: true,
    autoOpen: true,
    width:500,
    height:500,
    buttons: {
        "Back": function() {
            $('#popup').html('');
            $('#popup').dialog('close');
        }

    }

});

弹出窗口仅显示 160 个字符 jk;hcjaskda;ldA;LSDMAKDOIDM;A,MCSCM;lc"sac&lt;'LC;MClmca,.c sm,vnkdc ADVdL:VadMVa;dvadvNsmv S/MV s/vn,Va.&lt;VMA:dvma:DVMa&lt;dv d&gt;&lt;v a&gt;&lt;d S,CVNDMVaA&gt;VM:LDvm;LVMM,CVMAdv

是显示的内容。不确定它在哪里被截断。该对话框仅显示一个 H 滚动条

【问题讨论】:

  • 浏览器很可能会看到 并尝试创建一个元素。
  • 这段代码是否包含在 php 文件中?
  • 使用 $('#popup').text('Your text string') 代替初学者。如果你打算使用 jquery,你不妨使用它。
  • 我建议您转义任何会破坏我们的 JavaScript 代码的字符。
  • 嗯.. 它在&lt;? 处截断,这可能会被 php 解释为代码块。但无论这是 javascript 还是您的 php 文件,您都应该遇到语法错误并且它根本不应该工作..

标签: jquery


【解决方案1】:
  • .innerHTML 没有限制。
  • 在您的示例中,您必须在设置字符串之前对其进行转义! 您的脚本包含许多导致语法错误的字符,例如 " 它还有标签&lt;?,它是一个php或其他服务器端语言的开始标签。

您可以使用此表转义这些字符:entity-escape-characters-table

顺便说一句:此问题与innerhtml-size-limit重复

【讨论】:

  • innerHTML 确实有浏览器特定的大小限制,我测试过,见stackoverflow.com/a/27545633/694469
  • 我更新了我的答案 - 似乎没有限制,但内容被分成许多 childNoeds[*],每个限制为 65536 个字符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多