2011-07-20 105 views
0

我是一名设计师,不是JS编码器,所以任何帮助都会对此很好。使用javascript通过url字符串更改页面上的内容

使用JavaScript或jQuery我将如何通过URL中的字符串替换页面上的内容?

因此,如果内容“A”仅仅是通过这个http://www.example.com的正常内容,并且如果通过这个http://www.example.com/index.html?content=b'A'被内容'B'取代。

例如:

内容A

<div id="video-player"> 
vimeo code 
</div> 

要与内容B

<div id="video-player"> 
youtube code 
</div> 

经由串在像这样http://www.example.com/index.html?player=youtube 链接替换,如果有在URL没有字符串那么它会默认并只显示视频代码

编辑

确定这就是我的html页面上立即

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 

<script type="text/javascript" src="js/test.js"></script> 
</head> 

<body> 

<div id="video-player"> 
vimeo 
</div> 

</body> 
</html> 

和JS网页

window.location.href.split('?')[1].split('&')[0].split('content=')[1] 
var content_value = window.location.hash.substring(1) // For hashses OR 
var content_value = window.location.href.split('?')[1].split('&')[0].split('content=')[1] // For ? 
if (content_value === "b") { 
    $('#video-player').html(vimeo_code); 
} else { 
    $('#video-player').html(youtube_code); 

是这样吗?

+0

更精确。你想加载http://www.example.com/index.html?content=b页面的某个地方?或者阅读网址,看看你是否找到“content = b”,然后在某处显示某个地方? – Cystack

+0

因此,如果网址中没有字符串,我只是希望它显示内容'A',但如果网址中有字符串like = b,那么我希望'A'的内容替换为'B'。 它将是一个div – Matu

回答

1

最简单的方法是使用散列标签。你可以使用?,但实施起来比较困难。所以,而不是index.html?content=b使用index.html#b,然后你可以通过使用window.location.hash.substring(1),这将给你的场景b引用。然后,您可以使用if语句来检查该值并相应地调整内容。

另外,如果你需要使用?那么你可以使用这个window.location.href.split('?')[1].split('content=')[1]但它不能保证在任何情况下工作,特别是如果你有一个以上的变量存在。对于多个变量,你可以使用

window.location.href.split('?')[1].split('&')[0].split('content=')[1] 

完整代码现在这个样子:

$(function() { 
    var youtube_code, vimeo_code, content_value; 
    youtube_code = "The code for Youtube goes here"; 
    vimeo_code = "The code for Vimeo goes here"; 
    content_value = (typeof window.location.href.split('player=')[1] !== "undefined") ? window.location.href.split('player=')[1] : ""; 

    if (content_value === "youtube") { 
    $('#video-player').html(youtube_code); 
    } else { 
    $('#video-player').html(vimeo_code); 
    } 
}); 

你也可以使用一些else if■如果你想要更多的内容选择。根据您选择的选项,使用前两行中的一行。

编辑:将代码更改为完整的代码(并优化了一下)。除了将youtube_codevimeo_code更改为正确的值之外,您无需为此添加其他任何内容。

编辑:优化并使其检查居然有url中player=

+0

您使用的浏览器是?有没有错误? – Fred

+0

哈哈,是的。我认为这可能是这个。让我想办法解决这个问题并更改我的代码... – Fred

+0

请参阅:http://jsfiddle.net/b4rsd/您需要包含jQuery! – Fred

0

我建议你使用ajax和xml。将xml文件放入您的保管箱文件夹,您可以随时编辑该网址。

如果用户选择一个选项,ajax将更新该值而不刷新浏览器。

好东西是你可以在不登录html编辑器/网站cms的情况下从你的手机更新网址,你也可以使用其他功能。