将iframe源替换为主网址

时间:2018-09-28 17:49:21

标签: html url iframe

我不确定这是否可行... 我正在尝试使用作为大型机URL一部分的字符串替换iframe中URL的特定部分。

即我正在尝试替换iframe链接以包含userID。

Main URL:  https://web.example.com?userID=9553c6


<iframe src="https://app.example.com?[Insert userID here]"></iframe>

2 个答案:

答案 0 :(得分:0)

如果我认为您的网站的内容位于地址https://web.example.com?userID=9553c6下,则可以使用例如来实现。 php

<body>
    <iframe src="http://example.com?user_id=<?php echo urlencode($_GET['userId']) ?>"></iframe>
</body>

然后变量$_GET['userId']的值为9553c6

或者您只能使用js,这会有点困难,因为您必须解析location.search https://www.w3schools.com/jsref/prop_loc_search.asp并获取其中的特定部分。当然,参数userId的值将来自主站点。

直接解决方案

 <!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <style>
            iframe {
                width: 100%;
                height: 1000px;
            }
        </style>
    </head>
    <body>
        <iframe src="http://fotokrajobrazy.warmia.pl/galeria/fota.php?nr=1004"></iframe>
    </body>
    <script>
        window.onload = function () {
            var res = location.search.match(/userId\=(\w+)/);
            var fr = document.getElementsByTagName('iframe')[0];
            fr.setAttribute('src', fr.getAttribute('src').replace(/(nr\=)\d+/, '$1'+res[1]));
        };
    </script>
</html>

然后您可以像这样编辑主网址: http://127.0.0.1/stack.html?userId=1003http://127.0.0.1/stack.html?userId=1002 等等。iframe的网址也会更改。

答案 1 :(得分:0)

您需要一些简单的字符串悬挂。

您说您是通过JavaScript注入框架,所以我假设您的代码看起来像这样。

let
ifr = document.createElement('iframe'),
src = 'some/url/here?user={user-id}',
user_id = '123456';
src = src.replace('{user-id}', user_id)
;
document.body.appendChild(ifr);

关键行是带有.replace()的行-这是我们用实际值替换占位符的地方。