Javascript:将页面(从页面列表)加载到div中,并在输入字段中显示其URL?

Javascript:将页面(从页面列表)加载到div中,并在输入字段中显示其URL?,javascript,html,Javascript,Html,以下是背景:我编写了一个Javascript函数,它使用一个搜索字段搜索相关链接列表,并根据用户偏好在同一页面的div中显示他们搜索的链接,或者在新窗口中使用_blank显示他们搜索的链接 我很快意识到我的问题是,如果用户选择在div中而不是在新选项卡中加载页面,我希望用户仍然能够看到完整的页面URL。我希望他们仍然能够复制/粘贴URL。我想既然我已经获得了完整创建链接的Javascript函数,我只需添加一个“document.getElementByID('IDHERE')。value=pr

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

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

以下是我的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();
    }
}
/*跳转到用户指南的函数*/
函数goTo(){
var searchcountry=document.getElementById('guidesSearch').value;//获取搜索值
nWT_check=localStorage.getItem('newWindowToggle');
var processedPage=http://update.my-site.com/onlinehelp/';
var findFlag=0;

对于(i=0;i),您应该考虑使用URL散列技术。

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

index.php#pageName
因此,当主页加载时,使用JavaScript查看它是否有哈希值,然后使用哈希值,使用AJAX获取匹配的内容

这篇文章详细介绍了这一工作原理:


这种技术的妙处在于,用户既可以为URL添加书签,也可以共享URL,而且仍然有效。

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

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

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

我已经在使用哈希技术来加载主页了,我想,因为我的主页是index.php,顶部的不同页面会加载为“帮助”、“指南”等。我想我的场景可能会有所不同,因为我正试图让它们保持在e#guides散列,但在该guides页面中,将另一个页面(指南本身)加载到一个div中,然后显示其URL。这会改变事情吗?或者有任何意义吗?(lol)。我只是不确定我是否可以在哈希技术上加倍,但我还是要看看你的文章,非常感谢你的回复!可能值得补充的是,我试图加载和链接到的相关指南位于单独的服务器上,因此它们不是网站本身的本地资源。因此,我正在加载完整的URL地址。您可以修改哈希处理程序以使用分隔符和多个页面,并进行链接调用。我以前已经成功地完成了此操作。“#guides_sec1_page3”。只需按顺序运行您的呼叫。这是一个优雅的解决方案。这似乎是一个可靠的想法,但后来我意识到,在这种情况下,这将不起作用,但在一般情况下,我将从现在开始做。这将不起作用的原因是,无法给出URL栏中的地址,因为它是一个内部链接(需要SharePoint访问),因此,如果我使用哈希和那些URL,那么客户端无法访问页面,因为他们需要域密码。我正在尝试使用客户端链接,这对来宾来说是可访问的。这样他们可以在输入字段中看到地址并复制/粘贴。我感谢您的时间,tho!哈哈哈,相信我,如果可以的话,我会避免它,但我在中途介入了一个现有项目的所有结尾都有很多内部SharePoint引用和一些客户端引用,所以这有点让人困惑。我只是希望有一个简短的“哦,嘿,白痴,你错过了一个点”,但我知道这不会那么简单:p