0

这是背景:我有一个我编写的 Javascript 函数,它使用搜索字段来搜索相关链接的列表,并根据用户的偏好在同一页面上的 div 或新的 div 中显示他们搜索的链接使用 _blank 的窗口。

我很快意识到我的问题是,如果用户选择在 div 中而不是在新选项卡中加载页面,我希望他们仍然能够看到完整的页面 URL。我希望他们仍然能够复制/粘贴 URL。我想既然我已经有了创建完整链接的 Javascript 函数,我只需添加一个 'document.getElementByID('IDHERE').value = processesPage;,但是(无论出于何种原因)似乎不是在职的?

以下是我的 Javascript 供参考:

    /* Function to go jump to a user guide */
function goTo() {
    var searchAgainst = document.getElementById('guidesSearch').value; // get the search value
    nWT_check = localStorage.getItem('newWindowToggle');
    var processedPage = 'http://update.my-site.com/onlinehelp/';
    var findFlag = 0;

    for (i=0; i<allGuides.length; i++) {
        if (searchAgainst == allGuides[i]) {
            findFlag = 1;
            processedPage += allURLs[i];
            if (nWT_check == '0') {  //Check against the site options
                alert(processedPage); // ALERT to see if processedPage is correct. It is, and this alert triggers.
                document.getElementById('guidesLink').value = processedPage; // This does not seem to trigger?
                document.getElementById('guidesFrame').src = processedPage; // But then this does, which loads the new page in the DIV.
            }
            else if (nWT_check == '1') {
                window.open(processedPage,'_blank');
            }
        }
    }
    if (findFlag == 0) {
        $('#notFoundModal').modal();
    }
}

所以基本上,它查看 localStorage 项,如果为 0,则执行 DIV,如果为 1,则执行新页面。我正在尝试调试 if (nWT_check == '0') { //检查站点选项部分。

我知道每个人的时间和知识都是宝贵的,人们没有时间一直调试复杂的代码,但是任何对我可能做错了什么或如何更好地解决这个问题的见解将不胜感激。

4

2 回答 2

0

我会尝试使用 jQuery 来设置字段的值:

$("#guidesLink").val(processedPage);

这可能会通过设置输入字段值来解决一些潜在的浏览器怪癖。

于 2012-07-31T01:02:30.180 回答
0

您应该考虑使用 URL 哈希技术。

如果您的主页是index.php,因为每个页面都由 Ajax 加载,您可以document.location.hash='...'使用 JavaScript 将文档位置哈希 ( ) 更改为新值:

index.php#pageName

所以当主页面加载的时候,用JavaScript看有没有hash值,然后用hash值,去用AJAX去抓取匹配的内容。

这篇文章解释了它是如何工作的细节:http: //blog.mgm-tp.com/2011/10/must-know-url-hashtechniques-for-ajax-applications/

这种技术的美妙之处在于,用户既可以添加书签也可以共享 URL,而且它仍然可以工作。

于 2012-07-30T17:37:17.300 回答