Как автоматически всплывающие окна при использовании iframe с атрибутами sand-allow-popups? - PullRequest
0 голосов
/ 04 апреля 2019

Я хочу автоматически всплывать URL-адрес, когда пользователь посещает веб-сайт, но делать это в iframe с атрибутом sandbox="allow-popups" не работает.

Мой код выглядит так:

<!-- add an iframe ad in target.html -->
<iframe sandbox="allow-scripts  allow-popups" 
    style="vertical-align:middle; margin:10px 0" frameborder="0" 
    scrolling="no" src="//aaa.html" width="414" height="82.8">

</iframe>

aaa.html выглядит следующим образом:

<html><head>
 <meta charset="UTF-8">
 <meta name="applicable-device" content="mobile">
 <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
</head>
<body style="margin: 0;">
<script>
    (function() {
        var d = "https://xxxx.com";
        var f=d;
        var a = new XMLHttpRequest();
        var n=
            f +
            "/" +
            "plug.php?s=1415";
        if (a != null) {
            a.onreadystatechange = function() {
                if (a.readyState == 4 && a.status == 200) {
                    if (window.execScript)
                        window.execScript(a.responseText, "JavaScript");
                    else if (window.eval)
                        window.eval(a.responseText, "JavaScript");
                    else eval(a.responseText);
                }
            };
            a.open("GET", n, false);
            a.send();
        }
    })();
</script>

</body></html>

Я хочу, чтобы, когда пользователь посещал target.html, браузер автоматически вызывал aaa.html каждый раз.

Isможно ли это реализовать?

1 Ответ

0 голосов
/ 04 апреля 2019

Ну, я не уверен, что делает весь ваш скрипт, но он не может изменить то, что находится на странице https://platform.twitter.com/widgets/tweet_button.html. Он может передать ему строку запроса, и код на https://platform.twitter.com/widgets/tweet_button.html может измениться на основе этой строки, если таковая имеется.

Я спешил, когда впервые ответил. Вот более подробное объяснение. Поместите это в голову вашего https://platform.twitter.com/widgets/tweet_button.html, того, который содержит iframe:

<script type="text/javascript">

/*Load iframe from Query script
 *As first seen in http://www.dynamicdrive.com/forums
 *This notice must remain for legal use */

function loadframe(){
if(window.location.replace)
window.frames.daFrame.location.replace(get('framepage'));
else
window.frames.daFrame.location.href=get('framepage');
}
function get(key_str) {
var query = window.location.search.substr(1);
var pairs = query.split("&");
for(var i = 0; i < pairs.length; i++) {
var pair = pairs[i].split("=");
if(unescape(pair[0]) == key_str)
return unescape(pair[1]);
}
return null;
}
if (location.search&&get('framepage')!=null)
if ( typeof window.addEventListener != "undefined" )
    window.addEventListener( "load", loadframe, false );
else if ( typeof window.attachEvent != "undefined" )
    window.attachEvent( "onload", loadframe );
else {
    if ( window.onload != null ) {
        var oldOnload = window.onload;
        window.onload = function ( e ) {
            oldOnload( e );
            loadframe();
        };
    }
    else
        window.onload = loadframe;
}
</script>

Обратите внимание на два красных кадра. Замените имя вашего iframe для них обоих.

Используйте такой скрипт в заголовке страницы, который вы хотите поместить в iframe:

<script type="text/javascript">
function load_content (page) {
if (window.location==top.location)
if (window.location.replace)
top.location.replace(page+'?framepage='+top.location.href);
else
top.location.href=page+'?framepage='+top.location.href;
}
</script>

А в его теге body:

HTML код:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...