URL 中,查询字符串与HTML实体冲突,可能带来的问题.

此问题相关信息(我不放在最前面,似乎有些朋友会找不到的样子.)

IE10+, Safari5.17+, Firefox4.0+,Opera12+, Chrome7+ 已经按新标准实现. 所以就没有这个问题了.
 
参考标准 :  http://www.w3.org/html/ig/zh/wiki/HTML5/tokenization  新标准明确提到,如果实体后面遇到的不是;且下一个是= 那么就不处理的.就是为了解决这个坑爹的问题的.

 

我们来看demo :

<a href="http://www.baidu.com?a=1&reg=2&reg_a=3" >悲剧</a>

 
部分浏览器(对应上面已经按新标准实现的版本之下的,各个浏览器.)
点上面的链接, 会自动把  &reg 转意成® (部分浏览器会自动对转意后的字符进行编码) .  
 
这个bug.的本质,就是当HTML中出现相关HTML实体(HTML character entity)时.就自动转意处理了. 所以理论上, 用脚本,动态创建的资源则没有这个问题,比如 new Image().src = 'http://www.baidu.com?a=1&reg=2'; 甚至动态创建的iframe.亦如此.
 
IE9- 有两个问题比其他浏览器更严重:
1. 用脚本跳转当前页比如 location.href = xxx,或 location.replace(xxx) .又或者是调用 window.open(xxx);如果查询字符串中包含这些html实体, 仍然会触发这个问题... 
2. ,参见标准, 你会知道实体+"其他字符"   ,    "其他字符中",哪些与实体连接在一起,是没有这个问题的. 比如 &rega  , &reg1     其中a, 1 与 &reg 连接就不会有这种问题,从标准角度,甚至是  &reg_a 也不应有问题. 但是IE9-又一次打败了我们.  至于其他特殊字符如 # ~ 等.在各个浏览器中表现各异. 考虑我们在设计字段名时,不大可能出现那些字符.我们也不再纠结其他浏览器在此处实现的差异.
 
 
 
所以,理论上,这个问题应该是后端的同学,在输出html时.更加要注意的问题.  而前端同学,要注意的则是跳转或弹窗时的url中是否有相关的字段包含一个无分号即为html实体的情况.
 
至于IE为啥这么特殊...我也没想明白...
 
那么,无论后端同学也好,前端同学也罢,我们可能更改已经定好的字段成本比较高.  所以其实最妥善的办法,应该是这样子: (感谢 @辰光未然 的提醒.)
var fixURL = function (url) {
    return url.replace(/&/g,'&amp;');
};
//使用fixURL 去替换url中的&.然后再输出给html, 或者跳转链接,又或者弹窗... 当然,前端的同学在js代码中之所以要这样做.主要是受IE的拖累...

  

 
 
 
 
 
 
 
那么大概,很多HTML 实体都会出问题:
 
 
这个表里, 没有分号结尾的,都是隐患...  也就是下面这106个: (感谢 @kenny 提供的最新的list 地址. 我花了点时间写了个脚本.把需要处理的,都抓了出来.)
 
 
我们可以用下面这个脚本来帮忙做检测 :
 
   var checkURL = function () {
    var list = [ //106
            '&Aacute',
            '&aacute',
            '&Acirc',
            '&acirc',
            '&acute',
            '&AElig',
            '&aelig',
            '&Agrave',
            '&agrave',
            '&AMP',
            '&amp',
            '&Aring',
            '&aring',
            '&Atilde',
            '&atilde',
            '&Auml',
            '&auml',
            '&brvbar',
            '&Ccedil',
            '&ccedil',
            '&cedil',
            '&cent',
            '&COPY',
            '&copy',
            '&curren',
            '&deg',
            '&divide',
            '&Eacute',
            '&eacute',
            '&Ecirc',
            '&ecirc',
            '&Egrave',
            '&egrave',
            '&ETH',
            '&eth',
            '&Euml',
            '&euml',
            '&frac12',
            '&frac14',
            '&frac34',
            '&GT',
            '&gt',
            '&Iacute',
            '&iacute',
            '&Icirc',
            '&icirc',
            '&iexcl',
            '&Igrave',
            '&igrave',
            '&iquest',
            '&Iuml',
            '&iuml',
            '&laquo',
            '&LT',
            '&lt',
            '&macr',
            '&micro',
            '&middot',
            '&nbsp',
            '&not',
            '&Ntilde',
            '&ntilde',
            '&Oacute',
            '&oacute',
            '&Ocirc',
            '&ocirc',
            '&Ograve',
            '&ograve',
            '&ordf',
            '&ordm',
            '&Oslash',
            '&oslash',
            '&Otilde',
            '&otilde',
            '&Ouml',
            '&ouml',
            '&para',
            '&plusmn',
            '&pound',
            '&QUOT',
            '&quot',
            '&raquo',
            '&REG',
            '&reg',
            '&sect',
            '&shy',
            '&sup1',
            '&sup2',
            '&sup3',
            '&szlig',
            '&THORN',
            '&thorn',
            '&times',
            '&Uacute',
            '&uacute',
            '&Ucirc',
            '&ucirc',
            '&Ugrave',
            '&ugrave',
            '&uml',
            '&Uuml',
            '&uuml',
            '&Yacute',
            '&yacute',
            '&yen',
            '&yuml'
        ];
       
    return function (url) {
        var l = list;
        var i = l.length;
        var matchIndex;
        var current;
        var nextchar;
        var errors = [];
        for (; i--;){
            matchIndex = url.indexOf(l[i]);
            current = l[i];
            if(matchIndex > -1){
                if((current === '&amp' || current === '&AMP') && url.charAt(matchIndex + 4) === ';'){
                    //如果是 &amp; 或 &AMP; 我们就认为是故意要输出 & ,比如是一个调用fixURL方法修正过的URL.里面的& 会被我们替换为 amp;
                    //所以,我们要跳过它,去检查后面.
                    continue;
                }
                nextchar = url.charAt(matchIndex + current.length);
                if(!/[a-zA-Z0-9]/.test(nextchar)){
                    //此处我们只要发现任意一个 ,如 &reg后面紧随字符不在 a-z,A-Z,0-9范围内.就算有问题.
                    //这样处理实际和标准的细节以及浏览器实现有细微差异. 但是本着任何浏览器来跑case,都能发现潜在威胁的原则.和实现复杂度的考虑.
                    // 我们姑且粗暴的这样处理了. 似乎还不错.
                    
                    errors.push(current + nextchar);
                }
            }
        }
        if(errors.length){
            throw Error('contains : \n' + errors.join('\n'));
        }
    };
}();

  

 
 
 
 
test case 1: 
  var url  = '//www.baidu.com?a=1&amp=2&lt=3&reg=4';           
  document.onclick = function () { //IE9-好了.证明我们的修正是ok的了.
        window.open(fixURL(url))
  };

  


 
 test case 2:
  var url  = '//www.baidu.com?a=1&amp=2&lt=3&reg=4';     
    try{
        checkURL(url);
    }catch(e){
        alert(e.message)
    }
 
 

 

转载于:https://www.cnblogs.com/_franky/archive/2012/09/28/2706512.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
25312 提高了面板的打开速度,例如“属性”和“视图配置”面板。 26036 修改了引脚映射器的数据列排序,以匹配网络名称和引脚编号顺序。 26554 修复了按组件容差排序后,Explorer面板显示错误组件参数的问题。 26927 改进了滚动条的UI动作(在面板,网格,对话框),使它们更易于使用。 27405 修复了访问多维数组时出现“变量或安全数组索引超出范围”错误消​​息的问题。 27113 修复了在删除VCS Provider-GIT服务时尝试检出时引发异常的问题(BC:9551)。 27906 修复了以下问题:“属性”面板的修改字段值(在SCHDOC或SCHLIB上编辑对象时),如果当前所选项目已更改为另一个项目,或取消选择(BC:9641)。 27975 改善了多板装配板组件和外部零件之间的移动和锁定行为。 28216 修复了.PrjPCB文件克隆变体复制UniqueID导致具有相同足迹的备用零件的无限ECO循环参数的错误。 28304 更新登录下拉菜单UI以提供所有可用的托管内容服务器。 28482 减少和优化系统注册表的查询数量(BC:9106)。 28582 更新了“打开项目”对话框,从文件浏览器到对话框,以访问所有项目源,包括托管项目。 28907 添加了新的“创建项目”对话框,简化了项目目标位置和应用模板的选择。 29828 修复了导致对关联服务器进行多次重新连接尝试的无效会话ID错误。 29880 名称Design Workspace已更改为Project Group,以避免与新的云工作区混淆。已保存的项目组保留了* .DsnWrk文件扩展名。 数据管理 21617 修改了ActiveBOM的“过滤器编辑器”对话框UI。 22430 添加了在组件编辑器,资源管理器和ActiveBOM为托管组件设置制造商零件选择排名的功能。 22653 将供应商部件号和制造商部件号的检索更改为批处理模式,以防止与BOM报告,SchLib编辑器和带有活动物料清单的OutJob的顺序单个数据请求相关的延迟。 22982 修复了“数据管理 - 首选项的服务器”页面问题,该页面在未进行任何更改时标记为已修改。 23120 恢复了“发布文档到”功能,以便从Explorer面板发布已发布的文档。 23348 在BOM报告实施BOM文档过滤器选项。 23824 导入排名功能现在支持手动解决方案。将组件的手动解决方案从一个项目BOM导入另一个项目。 23999 修复了项目属性的变化未传递到BOM输出的问题(BC:9580 ; 7072)。 24029 向云组件数据添加了新的“供应商包装”参数,以区分制造商的“包装”参数(BC:8063 ; BC:8986)。 24443 解决了BOM过滤选项在设计项数量增加或减少后发生变化的问题(BC:5572)。 24619 在BOM报告和BOM集引入了对ActiveBOM过滤器选项的支持。 24832 修复了在“首选项”更改“部件提供者”位置时,BOM文档的“部件供应商”未动态更新的问题。 24844 添加了在ActiveBOM直接更改组件源(设计项)的功能,如在项目管理器。 24876 为ActiveBOM解决方案添加了新的创建/编辑制造商链接功能(BC:9437)。 25271 添加了在未安装MS Office时以xls / xlsx格式导出BOM的功能(BC:4646)。 25441 修复了PCB 3D打印输出的打印预览为空白的问题。 25760 使用ActiveBOM文档时,粘贴功能已得到改进,并且至少选择了一个目标单元格。 25801 修复了无法在“存储”面板(BC:8643)成功重命名设计文件的问题。 26014 修复了SVN连接错误问题,其在重新启动软件后无法提交创建的SVN v1.9文件存储库。 26111 解决了当PC屏幕缩放设置为125%时,“项目发布选项”对话框无法显示大量列出的OutJobs的问题。 26133 在Explorer面板搜索受管组件时,“Resistor”部件类型的已还原过滤器选项。 26267 已解决BOM报告指定参数类型优先级的问题。 26496 尝试从单组件编辑器编辑特定组件占用空间时出现已解决的异常错误。 26699 已解决的问题,其Vault 3.0的现有部件请求未显示在“资源管理器”面板。 26967 解决了Project Releaser的问题,如果任何参数之间的唯一区别是存在特殊字符(_,&,\等),则发布会产生“相同的密钥”错误。 27026 修复了组件的符号和占用空间之间的区分大小写的问题。将组件释放到服务器时,引脚名称会导致多个错误。 27048 将供应商包装数据添加到制造商零件搜索UI作为详细信息部分的参数条目(BC:8986 ; BC:8063)。 27064 已解决的问题,如果在组件值参数使用了希腊字符,则BomDoc行号为空。 27268 修复了“属性”面板的错误,该错误导致NEXUS Server托管组件的“无法在可用库找到组件”错误,该组件也损坏了引用。 27404 修复了从服务器更新组件数据时由于过多的数据请求导致的ActiveBOM延迟问题。 27535 修复了BOM报表组件的供应商链接顺序与该组件的供应商链接参数的实际顺序(BC:9691)不匹配的问题。 27714 修复了BOM报告问题,其“包含服务器参数”功能将不同的供应商返回到组件“属性”指定的供应商。 27959 修复了目标SVNDbLib缓存文件夹路径缺少导致SVN进程失败的'\'字符的回归。 28081 修复了在准备数据期间发生的项目发布器的“在000000010DA15E92处发生了一个或多个错误”的错误。 28291 BOM报告首选项添加了“在消息面板报告BOM违规”选项。 28443 将“带有ActiveBOM文档的BOM检查”项添加到“验证输出”菜单。 28448 “缓存文件夹”选项已添加到“首选项”对话框的“数据管理 - SVN库”页面(BC:1195)。 29089 Altium Infrastructure Server Packager现在可以正确使用部署包的更新首选项。 29090 安装期间不再需要Altium Infrastructure Server部署包(BC:8488)。 29809 固定组件面板错误,在执行基于文件的库搜索后无法重新打开所选组件类别。 进口商/出口商 17619 修复了导致P-CAD导入导出错误和PCAD16LD.DLL访问冲突的错误。 24746 修复了导入xDxDesigner项目时未正确转换总线的问题。 25221 更新了xDxDesigner导入器,改进了层和连接的解释以及Net Labels的对齐。 25427 DXF导入现在可以正确支持样条线对象并创建相应的多边形对象。 25959 解决了导入xDX Designer项目时未转换某些组件的问题。 27588 修复了在使用多部件组件导入特定xDxDesigner设计期间发生“访问冲突”的问题。 28014 修复了远征导入器的一个错误,其仅为特定项目导入了顶层和底层。 28735 P-CAD Importer现在可以正确导入连接和端口(BC:9577)。 29014 改进的Eagle进口商,包括许多修复; 分层块,板轮廓,图层分配和对象形状。 28067 在字符串对象使用多行文本时,生成IPC-2581输出不再导致访问冲突(BC:10407)。 30293 添加了新扩展 - Ansys EDB Exporter。安装后,使用File> Export> Ansys EDB在PCB Editor访问。 起草者 15059 添加了新的Board Region View对象,以显示Draftsman文档的板堆叠区域。 16063 在Draftsman自定义表(BC:7698)添加了对特殊字符串的支持。 18439 向Draftsman添加了板3D逼真3D视图对象(BC:6991)。 18441 添加了绑定到圆弧和圆弧心的Draftsman Center Mark对象(BC:9029)。 18756 修复了刚度Flex设计在等轴测视图和具有真几何的Board装配视图显示不正确的问题。 22669 改进了Dimension对象点的捕捉行为。 24616 修复了(特定用户的设计)导出到PDF (BC:9184)后出现“绘图员文档已过期”的冗余警告消息的问题。 25766 添加了在Draftsman Board Assembly和Fabrication视图选择显示的图层叠加层的功能。(BC:6910 ; BC:7716)。 25779 在Draftsman添加了新的传输线结构表对象,该对象填充了来自层堆栈管理器的阻抗计算数据。 25784 添加了绘图符号对象,用于表示焊接和粘合点。 25785 改进了在Draftsman添加文本的过程,只需单击鼠标即可在默认文本框添加默认文本。 25786 为Draftsman添加了新类型的Sheet Number参数,允许GOST兼容的纸张编号。 26114 修复了移动或调整大小的Draftsman图形对象可以折叠为单行的问题(BC:9471)。 26164 修复了由PCB库更新引起的PCB3D体位置的变化未更新到Draftsman的电路板视图的问题。 26266 修复了在单击表格单元格时,Space Navigator无法放大Draftsman文档的问题。 26443 修复了一个问题,即在重命名相关的PCB文档后,Draftsman会崩溃。 26542 修复了回归,其未选择丝网印刷图形的组件的装配视图缺少阴影线(BC:9416)。 26867 修复了回归,其没有显示缺少3D体的Not Fitted组件的阴影线。 26934 解决了从OutJob生成PDF输出时性能下降的问题。 27359 修复了在特定用户设计的装配视图显示某些未装配的组件的错误(BC:9416)。 27601 修复因PCB上的重复指示符导致长时间挂起的错误(BC:9203 ; BC:9632)。 27694 添加了在放置后移动Draftsman Callouts和Dimensions的起点(目标)点的能力(BC:7740)。 27699 修复了重新打开文档时,绘图员图层堆栈图例的填充图案将恢复为其默认设置的问题(BC:9756)。 27854 修复了Draftsman bug,其Variants未应用于输出作业生成的等轴测视图。 28416 在3D模型存在潜在错误的情况下(BC:9944)改进了Draftsman Assembly View的显示。 28803 径向尺寸现在可以在Draftsman正确复制/粘贴(BC:9969)。 29424 修复了使用自定义视图选项时Draftsman Realistic View和Outjob PCB 3D Print的3D相机捕捉定位不一致的问题。 29443 修复了在PCB编辑器(BC:9857)工作时自动保存备份崩溃绘图员的问题。 29463 添加了Draftsman支持,以在Board Assembly View显示Flex区域拓扑。 30087 Draftsman的“更新板”命令已更改为“从[PCB文档]导入更改”以更好地描述其功能。 多板 21572 修复了Space NavigatorMbaDoc3D运动与PcbDoc不一致的问题。 23734 修复了拆分Multi-Board Schematic的信号Entry (BC:9406)时“输入字符串格式不正确”的错误。 24498 修复了在尝试拆分多板原理图模块条目(BC:9406)时抛出“输入字符串格式不正确”错误的问题。 28431 在多板设计增加了对3D鼠标的支持 - 缩放/平移/旋转。 28432 添加了对以STEP和Parasolid X_T格式导出多板装配的支持。 28433 多板组件现在支持并显示刚挠结构设计的最终折叠状态。 概要 23846 修复了“属性”面板“参数”列表(BC:9153)无法使用剪切/复制/粘贴的问题。 24226 修复了在“属性”面板按“更新” (BC:9637)时未更新原理图库组件的名称/ URL链接(除非使用“输入”或“焦点更改” )的问题。 25412 修复了使用暂停的交互式进程关闭原理图文档时发生的“地址访问冲突”错误。 25459 在对具有大量供应商链接的原理图库进行参数更改后执行ECO时,解决了非常慢的响应。 25864 修复了Port对象的“属性”面板的“名称”字段未提供所有现有端口名称的下拉列表的问题。 27672 修复了原理图文本框架对象的问题,当通过“属性”面板进行编辑时,从外部编辑器粘贴文本时,选项卡将替换为空格(BC:9663)。 27900 修复了在编译后将组件放置在原理图表上变得缓慢的问题。 28442 现在,使用“属性”面板同时编辑多个原理图的多个对象,可以正确地将所有工作表标记为已修改(BC:9236)。 28446 在原理图首选项(默认值)(BC:10072)启用“覆盖库原语”选项时,不再覆盖原理图组件(指示符或注释)值。 28539 “属性”面板的“组件”模式现在在“参数”选项卡上包含“规则”部分,允许在原理图上指定组件类型设计规则(BC:9445 ; BC:8903)。 28565 现在,当使用Altium Light Grey UI主题时,参数表编辑器会正确显示所有数据(BC:9931)。 28716 恢复了通过其属性添加和编辑与原理图组件或文档关联的设计规则的功能。在“属性”面板的“参数”选项卡下的“规则”部分访问。 PCB 16383 修复了导致基于嵌入式主板的ODB ++输出失败的错误。 24425 Gloss和Retrace现在能够对联合对象进行操作。 24595 对路由友好的移动组件功能进行了各种增强,包括更好地支持何时:组件被扇出; 它的引脚布线; 目标区域有路线(BC:1048 ; BC:2866)。 24805 继续开发交互式路由器跟随模式,修复各种错误和行为。 25517 添加了HDI - microvia(uVia)支持。 25634 解决了在某些视角下半透明自由3D体不能看到捕捉点和测量线的问题。 25666 当无法在信号完整性的“模型分配”对话框更改“值/类型”列值时,修复了回归。 25671 解决了交互式差分对长度调整命令不遵守设置为匹配路由差分对的目标长度的问题。 25724 修复了交互式多路径过程的回归,其未通过“属性”面板应用总线间距的更改。 25809 单击选项卡时,图层选项卡不再自动滚动。只要最左侧的选项卡不是第一个可见选项卡(BC:9927),就会发生这种情况。 25853 现在,使用From Diff时,“目标长度”值在“属性”面板正确排序。对设置。 25951 添加首选项选项以在移动组件功能后启用/禁用重新连接。 25975 修复了在特定电路板设计启动交互式路由器时存在很长延迟的问题。 25982 为焊盘和过孔添加并集成了新的热释放选项。 26034 修复了“PCB列表”面板“智能编辑”功能的错误,其“批量替换”功能无效。 26128 增加了定义,使用和输出无限数量机械层的功能(BC:8976)。 26144 修复了在删除上一组时选择图层集时在“视图配置”面板出现的“被销毁后访问的对象”错误消息。 26361 解决了IPC Compliant Footprint Wizard的回归问题,当未选择Full Matrix时,无法更改(或插入)LGA,BGA包布局选项的任何参数。 26459 修复了“属性”面板的“网络类别”排序,以匹配软件其他区域使用的网络排序,例如PCB面板。 26610 更新了图层堆栈管理器,其包含用于堆栈定义,uVia支持,材料库,阻抗计算器等的新文档界面和UI增强功能。 26862 解决了CAMtastic问题,其设计规则值被错误地舍入到一个小数位。 26953 修复了在PCB库编辑器(BC:9535)错误地提供定义新组件层对的能力的问题。 26970 解决了Extract 3D Models功能无法从源PCB库(BC:9418)创建3D模型文件输出的问题。 27000 修复了特殊字符串的项目参数未响应参数值的更改而更新的问题。 27451 修复了使用嵌入式板阵列创建的PCB面板错误地将板轮廓(“轮廓”)层输出到ODB ++的问题。 27575 修复了DRC标记反钻停止层的最小环形环违规时的问题。 27661 添加了在交互式路由期间从Ctrl + L热键打开的下拉菜单直接选择首选图层的功能。 27662 添加了在交互式路由期间使用数字键盘键选择所需图层的功能。 27666 添加了“显示图层编号”选项以在PCB编辑器图层选项卡启用图层编号。 27673 修复了在多边形浇筑上粘贴自由垫或通道时不接受该多边形的网络设置的问题,导致短路和间隙违规(BC:9229)。 27689 添加了交互式路由逻辑,以防止子通道在推送和拥抱过程与其堆叠的通路设置轴分离。 27708 修复了在特定项目打开PCB文档后未出现反钻的问题。 27771 在Interactive Routing Properties面板添加了完全标记的Via侧视图。 27871 为独立区域实现了Arc Approximation属性。此属性可用于“属性”面板,“PCB列表”面板和“FSO”对话框的选定区域。 28086 修复了在特定电路板设计针对阴影多边形报告错误的未路由网络违规的问题。 28114 修复了通过Make PCB Library功能(BC:9847)将第17-32层上的某些对象(如Line和Arc)转换为第16层的错误。 28174 为“垫”和“过孔”的“属性”面板添加了“热释放”连接样式选项,这些选项将覆盖PolygonConnect规则定义的样式。 28188 现在,Gerber-X2 Exporter在使用arcs \ curves (BC:9868)时可以正确生成Profile层。 28275 现在可以在放置可以连接到多个网络的PCB对象时正确处理网络继承,将显示一个列出所有可能网络的选择窗口。 28427 添加了在PCB库放置尺寸的功能,这些功能未出现在PCB布局(BC:903)。 28428 添加了从选定的轨迹,弧线和实体区域创建3D实体的功能。使用工具>转换>从所选基元创建3D体(BC:1868)。 28441 按下L快捷键将移动组件翻转到电路板的另一侧不再导致显示不正确的焊盘违规(BC:5427)。 29176 在交互式路由的层转换期间,6快捷键可用于通过选项循环可用。现在包括所有可能的通道组合,例如uVia + blind via。 29179 增加了在3D模式下在叠加层上移动字符串可能性(BC:584)。 29262 修复了PCB 3D体点的回归,其使用“位置3D体”工具时无法选择添加的自定义捕捉点。 29269 在使用移除未使用的垫形状工具移除未使用的垫/通孔环(BC:4701)后,DRC不再错误地检测到最小环形环错误。 29698 解决了组件错误启用“翻转图层”设置的突出情况,包括:在移动然后执行撤消时翻转组件; 使用当前图层上的粘贴功能(Alt + Ins或选择性粘贴)在粘贴时交换图层; 或者从启用了该设置的旧版本导入首选项(BC:9238 ; BC:10235)。 29727 修复了无法将特殊字符粘贴到文本字符串的Text属性框的回归(BC:10221)。 29778 解决了使用RMB多次拖动视图后PCB编辑器性能下降的问题。 29786 “PCB规则和违规”面板的缩放行为得到了改进 - 现在缩放到违规细节而不是违规对象(BC:7987)。 29887 解决了3D模型的透明对象在3D命令期间变得可见的问题,例如从3D主体创建,与板对齐面或测量3D对象(BC:8699)。 29932 添加了新的查询关键字:IsBlindVia,IsBuriedVia,IsMicroVia和IsThruVia。 30270 修复了在3D模式下拖动PCB组件指示符时突出显示不起作用的问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值