【发布时间】:2013-03-10 19:52:04
【问题描述】:
我在本地 Windows 开发环境中使用 jquery UI 选项卡。我正在测试他们的demo code
<div id="tabs">
<ul>
<li><a href="#tabs-1">Nunc tincidunt</a></li>
<li><a href="#tabs-2">Proin dolor</a></li>
<li><a href="#tabs-3">Aenean lacinia</a></li>
</ul>
<div id="tabs-1">
<p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. </p>
</div>
<div id="tabs-2">
<p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie</p>
</div>
<div id="tabs-3">
<p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede ve</p>
</div>
</div>
问题是我在这个函数上得到一个“Uncaught URIError: URI malformed”:
function isLocal( anchor ) {
return anchor.hash.length > 1 &&
decodeURIComponent( anchor.href.replace( rhash, "" ) ) ===
Uncaught URIError: URI malformed
decodeURIComponent( location.href.replace( rhash, "" ) );
}
我怀疑这是由于 windows 环境中的 URI 看起来像这样:
file:///C:/Work/my%20project/yadda%20ac%E7%F5es%20yadda/submenu.html#tabs-1
我怎样才能让它在本地 Windows 上工作,因为我的客户希望在上线之前看到它在那里工作?我已经测试过,我知道这是由 uri 上的特殊字符的编码引起的(比如“acções”这个词)。 有没有办法让它在使用特殊字符时也能正常工作?
我知道我可以通过删除这些字符并重命名文件/文件夹来解决此问题,但我希望有一个更能证明客户的解决方案,以防他们决定再次重命名文件夹(一切都只是 CABOOM在他们的脸上)。
【问题讨论】:
-
你的代码是纯 HTML/JavaScript 吗?没有服务器端代码?你能在演示机器上运行一个小型 Web 服务器来避免 file:// URL 的问题吗?
-
这是一个错误bugs.jqueryui.com/ticket/9518 存在于非UTF8 URL。有人知道非 UTF8 网站的解决方法吗?
-
我对这个问题进行了一些调查,它导致了不同的问题 - how these non UTF-8 characters got to the URIs and should they be there or not?。请参阅随附的测试用例。
-
我将演示代码粘贴到记事本中并保存为 test1.html 在我的桌面上双击它,它可以正常工作。
-
@danny117,你说的是哪个演示代码?请发表明确的答案。
标签: javascript jquery html jquery-ui uri