2016-09-25 2 views
0

index.html lesen <object id="battle" data="battle.html"></object>Html <object>, JavaScript Erkennung von außen

hat eine Animation ich zeigen will, aber wenn die Animation will finnisch ist, ich es zu schließen. Ich habe versucht, so dass die Webseite verschwinden und es hat funktioniert, aber der Bildschirm nach war es unclickable

battle.html document.getElementById("battlebody").style.display="none"; !The image! Dieser Code wird abgespielt, wenn die Animation erfolgt. Im Grunde habe ich einen Rand darum gelegt, um zu sagen, wo es unsichtbar ist.

Nun, ich frage mich, ob es möglich ist, die <object> Markup in index.html nicht in Battle.html zu bearbeiten, wie ich es getan habe.

ein Beispiel index.html

<body> 
<object id="battle" data="battle.html"></object> 
</body> 

die battle.html

<body> 
    <button id="" onclick="closing(); ">close</button> 
    <script> 
    function closing() { 
    window.close() 
    </script> 
</body> 

Ich möchte ein bisschen das Objekt in der Nähe machen, aber es funktioniert nicht auf diese Weise, so macht das Objekt display:none; aber für das auch arbeiten müssen Sie die jS-Code in die index.html hinzuzufügen, aber die index.html in die <object> nicht ausliest

+0

eine Geige machen pls .. –

+0

@Bla ... kann nicht da geigen nur verwendet 1 HTML-Seite. – Bamuel

+0

'object id = "Kampf"' ... 'document.getElementById ("battlebody") style.display = "none";.' ... zwei verschiedene IDs ... warum? haben Sie 'document.getElementById ("Kampf") versuchen style.display = "none";.' –

Antwort

2

Sie können einfach die Methode window.parent.postMessage verwenden.

Gezielte Seite

<html> 
<body> 
    <script> 
    setTimeout(function() { 
     parent.postMessage('close-me', '*'); 
    }, 2000); 
    </script> 
</body> 
</html> 

index.html

window.onmessage = function(e){ 
 
    if(e.data === 'close-me'){ 
 
    console.log("should remove"); 
 
    obj.parentNode.removeChild(obj); 
 
    } 
 
    };
object{border:1px solid}
<object id="obj" data="data:text/html; charset=utf8, %3Chtml%3E%3Cbody%3E%3Cscript%3EsetTimeout(function()%7Bparent.postMessage('close-me'%2C'*')%3B%7D%2C2000)%3B%3C%2Fscript%3E%3C%2Fbody%3E%3C%2Fhtml%3E"></object>

+0

Danke, ich werde es bald ausprobieren – Bamuel

Verwandte Themen