前几天问这个但没有得到答复。我要创建一个完整的链式选择示例(demo10):
http://www.yxscripts.com/cs/cs.zip
一切看起来都不错但是如果你在谷歌浏览器中打开它,当你从第一个框中选择本田时 - 程序失败了。我按'ctrl shift J'试试看问题是什么,它告诉我:
“未捕获的TypeError:对象[对象DOMWindow]的属性'addListGroup'不是函数”
关于我能做些什么来解决这个问题的任何线索?错误在'content_honda.js'中:
addListGroup("content_honda.html", "Honda");
addOption("Honda", "--- Honda vehicles ---", "");
addList("Honda", "Cars (on-the-fly)", "car", "content_honda_sub.html");
addList("Honda", "SUVs/Van", "suv", "Honda-SUVs/Van", 1);
addOption("Honda-SUVs/Van", "--- Honda SUVs/Van ---", "");
addOption("Honda-SUVs/Van", "CR-V", "CR-V");
addOption("Honda-SUVs/Van", "Pilot", "Pilot");
addOption("Honda-SUVs/Van", "Odyssey", "Odyssey", 1);
updateSubList("vehicles", "content_honda.html");
答案 0 :(得分:1)
您正在调用尚未定义的函数。您将要查看此示例的先决条件(请查看yxscripts.com站点)或以其他方式查找必要的包含脚本。我从未见过addListGroup
作为标准DOM函数。
答案 1 :(得分:0)
这是一个跨域安全问题。在浏览器中将demo10.html
加载为本地文件时会失败,但如果您使用网络服务器(我使用Jetty)托管演示,那么它会按预期工作。
作为本地文件运行我在Chrome控制台中收到以下错误:
Unsafe JavaScript attempt to access frame with URL file:///C:/Users/xxx/Desktop/so/cs/examples/demo10.html from frame with URL file:///C:/Users/xxx/Desktop/so/cs/examples/content_honda.html. Domains, protocols and ports must match.
那就是说,我完全赞同@Pointy,因为这个库非常可怕。就个人而言,我会重新开始并自己构建一些东西。这是一个很好的解决问题和良好的学习经验。您甚至可以利用一些现有的JavaScript库来最小化任何跨浏览器问题。