iframe src is not changing when I click back button - javascript

<iframe id ="iframeA" name="iframeA" src="./friendList.html" frameborder="0" width="100%" height="100%"></iframe>
I have an iframe tag like this.. and When the parent frame is loaded I add some tags in this iframe body. However when I change iframe src to './letterList.html' using jquery then letterList.html will be loaded correctly and then when I click back button, iframe src is not change to original './friendList.html'(even the focus was in the iframe) , But the content in iframe was './friendList.html' 's content. only src was not changed. and of course the tags that I added in iframe body was gone. I understand that tags were gone, but I can't understand why src is not changed but the contents in iframe is the original iframes'content.
Anybody can help me?.....

Not sure how you mean 'why'. This is not error, this is specified behaviour (look at the note right before name attribute description). This was probably done because iframes sometimes should be unable to interact with parent document at all.
However, if you want to handle that, you might for example catch onbeforeunload event in iframe and reset its src.

Related

How can i access to iframe inside iframe?

<iframe src="...">
<iframe id="embedIframe" src="...">
</iframe>
</iframe>
I want to select an Iframe element with an Id of "embedIframe".
I tried document.getElementById("embedIframe") in the console window in developer tools.
But this returns a null value.
The strange thing is that if I directly click "embedIframe" in the Chrome Developer Tools element tab with the mouse, then return to the console window and type document.getElementById("embedIframe"), a normal value is output.
https://i.imgur.com/natyF1I.png
I'm using react.
React doesn't find document.getElementById("embedIframe") either.
How can i access to Iframe id "embedIframe" at once?
If you have a document containing an iframe, and in the same document you have another iframe as a child element of the first … then your HTML is invalid and you can't do that.
Children of iframes used to be alternative content to render if the browser didn't support iframes, but that has been phased out and iframes are no longer allowed children.
If you have an iframe with a src of ... and then the document (from ...) the is loaded into that iframe contains another iframe then document.getElementById("embedIframe") doesn't work because embedIframe isn't part of that document.
You need to get the iframe in the current document, then get the document belonging to that frame, and then search that document for the iframe you want.

How to add a div inside iframe?

I added an iframe in my webpage. I want to add a div inside of that iframe. But i have not been able to do so. If anyone can help me with this one, i would be very thankful.
The code that i used is given below.
`<div class="text-column">
<?php
$url="https://secure.activecarrot.com/public/facility/index/33/768";
?>
<iframe src="<?php echo($url); ?>" width="100%" height="1000px" frameborder="0"></iframe>
</div>`
You will need to use Javascript to inject the content into your iframe after the page has loaded: \
Create an <iframe> element and append html content to it with jQuery
However, be careful appending to an iframe: the third party using it probably expects to send and receive the same content, and injecting code into it may cause whatever function it performs to fail.
Edit: others have cited security concerns, and they are justoified. However, it is technically possible to do what OP hs requested.
You need to inject the content after the page has loaded because the iframe pulls and overwrites content on page load. If the iframe does not need to send anything back to the server at any point there is no reason you cannot add extra elements to an iframe. Every case is different.
I am afraid you will not be able to do this, since iframe is a way to inculde an external page (to put it simple), hence you can not alter pages in iframes.
Regards,
Spyros

IFRAME not loading in parent frame when called from HTML page

We have 1 IFRAME present in asp page. And 1 HTML page where we have redirected to the parent IFRAME on click of anchor tag using angular.js.
In HTML page we have code as given below present inside anchor tag,
ng-click="seeDetail(); "> Go to parent Iframe
In javascript function seeDetail() we have code as shown below,
var url = "./PageToBeLoaded.asp";
parent.document.getElementsByTagName("IFRAME").item("frameID").src = url;
On call of this statement in javascript we need the URL to launch in parent IFRAME.However instead of loading in the parent IFRAME its loading in the HTML page itself.
Yes it is. You're looking in the parent, finding the iframe, and setting the src of it, which is probably the current iframe. I think what you're looking for is parent.location.assign(url).
We used ng-href tag with target attribute and it worked fine. Provided the URL to the ng-href and the frame name to the target attribute.

Change iframe src from inside after setting src with jquery?

I have an iframe the source of which i'm changing via various buttons using jquery. For some reason after the iframe source is set i can't seem to change the src attribute from links within it. The content will change correctly, but not the src attribute. I need the src to change so i can look for it from the main page to do stuff there.
This is the code from the main page that i'm using to set the src:
$('#section').attr('src','music.html');
And from within the frame i've tried using regular links, window.location, etc.

Can't grab a frame within an iframe and a frameset with javascript (domains are the same)

I'm tying to grab with javascript a HTML element located in a frame nested in an iframe and a frameset. The HTML structure looks like this:
<iframe id="central_iframe" name="central_iframe" (...)>
<frameset cols="185, *" border="0" framespacing="0" frameborder="0">
<frame src="/subdomain" name="SideFrame" id="SideFrame" (...)>
Previously I've done it like this:
myIframe = document.getElementById('central_iframe');
mySideFrame = myIframe.contentDocument.getElementById('SideFrame');
myElement = mySideFrame.contentDocument.getElementById('iWantToGrabThis');
This however does not work here because myIframe.contentDocument returns null. myIframe.contentWindow on the other hand returns a window that has no properties at all (and hence myIframe.contentWindow.document is undefined). Similarly, when I try
central_iframe.SideFrame
also a window with no properties whatsoever is returned.
EDIT: The page is not mine and therefore I can't change its source. I'm just trying to interact with it.
I'm doing the testing in Chrome developer tools. I've also tried it with the same result in GeckoFX. Any help will be appreciated.
an iframe points to an other source with the src attribute! you cant embed any html within an iframe. Put the frameset into a html file where you point to by the iframe src. You'll then be able to select the iframe from a script with window.parent. You can access the frames of the frameset with document.frames.
After doing more research it indeed seems that Justin Morgan's suggestion is right and what I want is impossible. I made a partial workaround by loading the parent iframe in the browser to begin with. This allowed me to access the child frame (SideFrame) normally.

Categories

Resources