Javascript 如何对动态项使用onhashchange
因此,我在一个网页上有两个选择框,但在不同的锚中(一个在页面上,另一个在iframe中),我试图获取代码来检测它在哪个锚中,然后将该框中的选择值中继到一个链接。这是我的密码:Javascript 如何对动态项使用onhashchange,javascript,jquery,html,url,hashchange,Javascript,Jquery,Html,Url,Hashchange,因此,我在一个网页上有两个选择框,但在不同的锚中(一个在页面上,另一个在iframe中),我试图获取代码来检测它在哪个锚中,然后将该框中的选择值中继到一个链接。这是我的密码: function locationHashChanged() { if (location.hash === "#player") { function setText(text) { var selectVal = text; var url = $
function locationHashChanged() {
if (location.hash === "#player") {
function setText(text) {
var selectVal = text;
var url = $('twitter').attr("href");
url = 'https://twitter.com/intent/tweet?button_hashtag=stream&text=Just enjoying ' + selectVal + ' on';
$('#twitter').attr("href", url);
}
}
if (location.hash === "#embeds") {
$(function () {
var $twitter = $('twitter');
$('#iframe').on('load', function () {
$(this).contents().find('#cds').change(function () {
var selectVal = $(this).val() || 'nothing much';
url = 'https://twitter.com/intent/tweet?button_hashtag=stream&text=Just enjoying ' + selectVal + ' on';
$('#twitter').attr("href", url);
}).change();
});
});
}
}
我知道这可能是不对的,或者在任何接近正确的地方,但我在正确的轨道上吗?说到javascript,我真的是个十足的傻瓜。提前感谢除了函数的确切外观之外,它现在不会在哈希更改上执行 您可以使用jQuery,这样您就可以像这样监听哈希更改:
$(window).on('hashchange', function() {
// your locationHashChanged() function goes here
});
这样,每次哈希更改时,都会执行函数。您的代码的基础很好:
if (location.hash === "#player") {
// this is executed if hash changed to #player
}
if (location.hash === "#embeds") {
// this is executed if hash changed to #embeds
}
尽管如此,在if
块中声明函数(这在这里没有多大意义)
还要注意,如果iframe不是来自您的域,您将无法从中获取任何数据。如果是这样的话,请阅读更多信息。“它在哪个锚点”=嗯?请告诉我你的代码不是这样缩进的:-)@cbuckley不,它更干净,只是这里的格式