Hot For Coding
Java项目iframe问题

昨晚在Java Webb项目下iframe嵌一个远程网页,被嵌的页面假设叫a页面,关键在b页面嵌入远程a页面的时候老是弹出:

Failed to find paramater: c0-scriptNmae

Java应用控制台日志打出

Error: java.lang.IllegalArgumentException, Failed to find parameter: c0-scriptName 
Error: java.lang.IllegalArgumentException, Failed to find parameter: c0-scriptName 
Error: java.lang.IllegalArgumentException, Failed to find parameter: c0-scriptName

浏览器弹出alter警告窗3次,控制台也打印3次,看起来是Java应用程序的错误,说是参数的问题。可远程a页面通过浏览器访问完全没有任何问题,包括Chrome浏览器远程a页面也没有任何问题。难道页面的内容会影响iframe?

后来通过测试,发现有一个很诡异的bug,在创建iframe标签时你要指定name值并且name值包含一个字,就出现以上错误,只要把字去掉就正常。但我在src到其它普通页面时即使name值中包含字也没有任何影响!这个Bug花了我一天时间,但却无法让人理解,貌似跟Java有关,如果哪位Java大神知道麻烦告诉我。

b.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <iframe name="树" width="100%" height="700px" src="http://localhost:8080/a.html"></iframe>
  </body>
</html>

a.html

<meta charset="utf-8" />
<script type="text/javascript" src="dwr/engine.js"></script>
<h1>Hello Word!</h1>

然后使用浏览器打开你的b.html,就会重现以上错误了。在b.html页面中把iframe标签的name="树"这个属性去掉,或者把name的值修改成其它值,就不会报错。我认为有可能跟中文字符集有关系。

TITLE: Java项目iframe问题

LINK: https://www.qttc.net/388_java_iframe_bug.html

NOTE: 转载内容请注明出处