首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scriptaculous在Firefox中不起作用

Scriptaculous在Firefox中不起作用
EN

Stack Overflow用户
提问于 2013-05-14 09:28:01
回答 3查看 447关注 0票数 0

我正在处理一个项目,它使用实现了一个自动完成的textfield。在小于10的Internet版本中,系统工作正常,但是由于版本10和其他浏览器(如Firefox或Chrome ),自动完成功能存在缺陷。我已经用prototype 1.7将Scriptaculous更新为1.9,但是没有什么改变。

代码语言:javascript
复制
<label for="possibleClient">Verfügbare Klienten</label><br>
            <input type="text" id="possibleClient" class="fill intellisense"><div id="possibleClientUpdate" class="auto-complete"></div>

            <script type="text/javascript" language="javascript" charset="utf-8">
            // <![CDATA[

            function updateClientList(input,listitem) {

                var nodes = document.getElementsByClassName('informal', listitem) || [];
                if(nodes.length>0) label = Element.collectTextNodes(nodes[0], listitem);
                addToList("chosenClients",input.value,label);
                input.value="";
            }

            var ac = new Ajax.Autocompleter('possibleClient','possibleClientUpdate','/data/clients.php',{paramName: 'search',minChars:1, parameters:'projektIDs=<?php echo $projektID ?>&searchnName=true', select:'selectme', afterUpdateElement: updateClientList});
            // ]]>
            </script>               

我完全不知道。

更新

嗨,坦克所有的快速答案。有缺陷是什么意思。我正在更新一个较旧的系统,以便为任何浏览器做好准备。缺陷意味着自动完成不能工作。如果我输入了什么,在新的浏览器中会发生什么。当激活兼容模式时,它在ie 10中工作。

系统没有使用json文件。The返回一个

代码语言:javascript
复制
<ul><li></li></ul> 

文字段落。

例如:

代码语言:javascript
复制
<ul><li><span class='informal'>Aicher Jasmin</span> (<span class='selectme'>65</span>)</li><li><span class='informal'>Bader Jacqueline Bernice</span> (<span class='selectme'>77</span>)</li><li><span class='informal'>Freisslich Claudia</span> (<span class='selectme'>78</span>)</li><li><span class='informal'>Goller Sascha</span> (<span class='selectme'>64</span>)</li><li><span class='informal'>Hebein Ilse</span> (<span class='selectme'>75</span>)</li><li><span class='informal'>Hohenwarter Berndt</span> (<span class='selectme'>60</span>)</li><li><span class='informal'>Kanz Bernhard</span> (<span class='selectme'>69</span>)</li><li><span class='informal'>Kohlmaier Angelika</span> (<span class='selectme'>68</span>)</li><li><span class='informal'>Konic Isabella</span> (<span class='selectme'>71</span>)</li><li><span class='informal'>Kosche Karl-Heinz</span> (<span class='selectme'>63</span>)</li><li><span class='informal'>Kreilitsch Jutta</span> (<span class='selectme'>70</span>)</li><li><span class='informal'>Kribitsch Bernhard</span> (<span class='selectme'>61</span>)</li><li><span class='informal'>Lackner Ermelinde</span> (<span class='selectme'>79</span>)</li><li><span class='informal'>M&ouml;sslacher Wolfgang</span> (<span class='selectme'>67</span>)</li><li><span class='informal'>M&uuml;ller Hans</span> (<span class='selectme'>54</span>)</li></ul>

我也不认为数据源是问题所在,因为它适用于较旧的浏览器。

如果我在firefox中启动了开发人员控制台,并输入以下内容:

我看到调用了这个过程,并且脚本正在获取07:35:47.367 POST https://myserver.at/data/clients.php HTTP/1.1200OK 45ms中的数据

但是我没有看到有自动完成建议的下拉div。可能是css问题吗?下面是自动完成的css文件:

代码语言:javascript
复制
div.auto-complete {
  position:absolute;
  width:250px;
  background-color:white;
  border:1px solid #888;
  margin:1px 1px 0 1px;
  padding:0px;
}
div.auto-complete ul {
  list-style-type: none;
  margin:0px;
  padding:0px;
}
div.auto-complete ul li.selected { background-color: #ffb;}
div.auto-complete ul li {
  list-style-type: none;
  display:block;
  margin:0;
  padding:2px;
  height:22px;
  cursor:pointer;
}
EN

回答 3

Stack Overflow用户

发布于 2013-05-14 10:47:03

想到为什么它能在旧的浏览器中工作,但不是更新的原因是,您的JSON无效:

代码语言:javascript
复制
var b = eval("[{nooo:'json0'},{nooo:'json1'}]"); //works
var b = JSON.parse("[{nooo:'json0'},{nooo:'json1'}]")// doesn't
              // because the string isn't valid json
var b = JSON.parse('[{"nooo":"json0"},{"nooo":"json1"}]');//works, valid JSON string

要解决这个问题,您应该让PHP返回有效的JSON。

在安装了Firebug的FireFox中,您可以右键单击文本框,然后选择“使用firebug检查元素”,如果将firebug窗口停靠,您应该会看到元素,元素下面是“下拉”结果。

当您键入某些内容并完成xhr请求时,结果应该有一个UL元素--当我在http://www.ajaxdaddy.com/scriptaculous-autocomplete.html上使用它时,请参阅下面的图像

我上面提到的URL是否有效(它适用于Firefox,但使用1.7)?

以下是结果:

票数 0
EN

Stack Overflow用户

发布于 2013-05-15 05:39:48

嗨,坦克所有的快速答案。有缺陷是什么意思。我正在更新一个较旧的系统,以便为任何浏览器做好准备。缺陷意味着自动完成不能工作。如果我输入了什么,在新的浏览器中会发生什么。当激活兼容模式时,它在ie 10中工作。

系统没有使用json文件。The返回一个

代码语言:javascript
复制
<ul><li></li></ul> 

文字段落。

例如:

代码语言:javascript
复制
<ul><li><span class='informal'>Aicher Jasmin</span> (<span class='selectme'>65</span>)</li><li><span class='informal'>Bader Jacqueline Bernice</span> (<span class='selectme'>77</span>)</li><li><span class='informal'>Freisslich Claudia</span> (<span class='selectme'>78</span>)</li><li><span class='informal'>Goller Sascha</span> (<span class='selectme'>64</span>)</li><li><span class='informal'>Hebein Ilse</span> (<span class='selectme'>75</span>)</li><li><span class='informal'>Hohenwarter Berndt</span> (<span class='selectme'>60</span>)</li><li><span class='informal'>Kanz Bernhard</span> (<span class='selectme'>69</span>)</li><li><span class='informal'>Kohlmaier Angelika</span> (<span class='selectme'>68</span>)</li><li><span class='informal'>Konic Isabella</span> (<span class='selectme'>71</span>)</li><li><span class='informal'>Kosche Karl-Heinz</span> (<span class='selectme'>63</span>)</li><li><span class='informal'>Kreilitsch Jutta</span> (<span class='selectme'>70</span>)</li><li><span class='informal'>Kribitsch Bernhard</span> (<span class='selectme'>61</span>)</li><li><span class='informal'>Lackner Ermelinde</span> (<span class='selectme'>79</span>)</li><li><span class='informal'>M&ouml;sslacher Wolfgang</span> (<span class='selectme'>67</span>)</li><li><span class='informal'>M&uuml;ller Hans</span> (<span class='selectme'>54</span>)</li></ul>

我也不认为数据源是问题所在,因为它适用于较旧的浏览器。

如果我在firefox中启动了开发人员控制台,并输入以下内容:

我看到调用了这个过程,并且脚本正在获取07:35:47.367 POST https://myserver.at/data/clients.php HTTP/1.1200OK 45ms中的数据

但是我没有看到有自动完成建议的下拉div。可能是css问题吗?下面是自动完成的css文件:

代码语言:javascript
复制
div.auto-complete {
  position:absolute;
  width:250px;
  background-color:white;
  border:1px solid #888;
  margin:1px 1px 0 1px;
  padding:0px;
}
div.auto-complete ul {
  list-style-type: none;
  margin:0px;
  padding:0px;
}
div.auto-complete ul li.selected { background-color: #ffb;}
div.auto-complete ul li {
  list-style-type: none;
  display:block;
  margin:0;
  padding:2px;
  height:22px;
  cursor:pointer;
}
票数 0
EN

Stack Overflow用户

发布于 2013-05-16 06:40:40

是的,一切都像你说的那样工作,还有样例链接。但是当我调试这个元素时,div道具就会显示:无,而且它们不会改变。他添加了元素,但没有显示出来。

代码语言:javascript
复制
    <div id="possibleClientUpdate" style="display: none;">
<ul>...
</div>

我如何解决这个问题?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16539557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档