在iframe中获取并打印哈希值

时间:2017-10-11 07:53:54

标签: javascript jquery

我想从此网址获取哈希

http://www.mywebsite.com/#/aaaaaaaa

AAAAAAAA

并添加到iframe:

<iframe src="http://www.example.com/url/aaaaaaaa" frameborder="0">

Javascript代码:

<script>
var hhash = window.location.hash.substr(1);
alert(hhash);
</script>

3 个答案:

答案 0 :(得分:0)

你的头衔和问题有点误导。 如果您只想打印哈希标记,可以创建一个元素并将innerText设置为哈希,如下所示:

&#13;
&#13;
// Use hash instead of href here! :) This is just to make the example work
const lastPart = window.location.href.split( '/' ).pop();
document.querySelector( '.hash' ).innerText = lastPart;
&#13;
<div class="hash"></div>
&#13;
&#13;
&#13;

如果你想改变iFrame的src,可以使用与setAttribute结合的第一个例子。

&#13;
&#13;
// Use hash instead of href here! :) This is just to make the example work
const lastPart = window.location.href.split( '/' ).pop();
const src = 'http://example.org/url/' + lastPart;
document.querySelector( '.hash' ).setAttribute( 'src', src );
document.querySelector( '.url' ).innerText = 'iframe points to ' + src;
&#13;
<iframe class="hash"></iframe>
<div class="url"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您还可以使用lastIndexOf()函数找到URL中最后一个/字符,然后使用substr()函数返回从该位置开始的子字符串:

 var hhash =(window.location.href.substr(window.location.href.lastIndexOf('/') + 1));
 document.write("<iframe src=\"example.com/url/\""+hhash+"frameborder=\"0\">");

答案 2 :(得分:0)

您可以使用:

获取哈希部分(不带#/
var hash = window.location.hash.replace('#/', '');

然后,您将获得当前的iframe src属性:

var src = document.getElementsById('YourIframeId').getAttribute('src');

现在您更新iframe src

document.getElementsById('YourIframeId').setAttribute('src',src + '/' + hash);