100% iframe height not working in Firefox or Chrome [duplicate] - html

This question already has answers here:
Full-screen iframe with a height of 100%
(20 answers)
Closed 8 years ago.
I'm working on a browser with a full Iframe with randomly alternating websites within. I found a piece of 'JavaScript' which works in Safari, however in certain browsers (Firefox, Chrome) the frames height becomes narrow rather than the full length of the screen.
I've tried removing of the other html just incase something was interfering with the script but still have the same results.
Here's the javascript I'm working with –
var ie=document.all&&navigator.userAgent.indexOf("Opera")==-1
var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1
//Specify IFRAME display attributes
var iframeprops='width="100%" height="100%" border="none" position="fixed" top="0px" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no" z-index"-20"'
//Specify random URLs to display inside iframe
var randomcontent=new Array()
randomcontent[0]="http://.."
randomcontent[1]="http://..."
randomcontent[2]="http://...."
//No need to edit after here
if (ie||dom)
document.write('<iframe id="dynstuff" src="" '+iframeprops+'></iframe>')
function random_iframe(){
if (ie||dom){
var iframeobj=document.getElementById? document.getElementById("dynstuff") : document.all.dynstuff
iframeobj.src=randomcontent[Math.floor(Math.random()*randomcontent.length)]
}
}
window.onload=random_iframe
I've also attached attached a screenshot. Green arrow is the restricted length of the iframe. Yellow is what I'm after – the full length of the browser

Do it with CSS:
//Specify IFRAME display attributes
var iframeprops='width="100%" height="100%" border="none" position="fixed" top="0px" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no" z-index"-20"'
iframeprops += ' style="height:100%;" '; //<--- This is the new attribute

Related

Displaying pdf files without using external libraries

In my Angular app, I have included the following snippet in an html template:
<embed src="../assets/AOK_T2DM.pdf" style="width: 100%;height: 500px" type="application/pdf">
It appears as follows:
When I click open, the pdf file is downloaded.
How can I simply display the content instead of downloading it?
<iframe src="https://docs.google.com/viewer?url=https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf&embedded=true" frameborder="0" height="600" width="100%"></iframe>
Use Below Code
<iframe src="https://docs.google.com/viewer?url=File_URL&embedded=true" frameborder="0" height="1100px" width="100%"></iframe>
Set height as per your need or give the height as 100% and set the height for the parent div.
Check and update if it works.

HTML: making iframe height fixed

I have a we page that is included inside an iframe on another domain. The issue is that the iframe is always loaded with vertical scrollbar. I checked the markup and here is how they include the iFrame:
<iframe class="plugin-frame js-plugin-frame" frameborder="0" marginheight="0" marginwidth="0" width="100%" height="auto" sandbox="allow-scripts allow-forms allow-same-origin allow-popups allow-top-navigation" src="https://mydomain/mypage.html"></iframe>
If I change the above to:
<iframe class="plugin-frame js-plugin-frame" frameborder="0" marginheight="0" marginwidth="0" width="100%" min-height="600px" sandbox="allow-scripts allow-forms allow-same-origin allow-popups allow-top-navigation" src="https://mydomain/mypage.html"></iframe>
it works.
Is there anything that I can do on my page to make it work. I need to get rid of the vertical scrollbar and have no control over the third party markup. Is there anything needed in the markup of my iframe to fix this?
If you don't want to have the scrollbar, but do want to allow scrolling, you can add the following CSS (only works in WebKit):
::-webkit-scrollbar {display: none}
If you don't want to have the scrollbar and you don't want scrolling then you can do this:
body, html { overflow-y: hidden }
Since I assume you want to only apply these styles if your page is iframed, use this JavaScript to get the job done:
if (top != self) {
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = '::-webkit-scrollbar {display: none}';
document.head.appendChild(style);
}

How to make some loading text for HTML5 iFrame [duplicate]

This question already has answers here:
Capture iframe load complete event
(6 answers)
Closed 6 years ago.
I have an iFrame object that are defined like this:
<iframe src="iFrame SRC" frameborder="0" width="160" height="200" scrolling="no" longdesc="longdesc URL">
</iframe>
Now this frame took a long time to load, is it possible to make a loading text that simple says Loading frame..., and when the frame appears make the text go away? I tried putting the text right above the frame definition like this:
Loading...
<iframe ...>
</iframe>
It does stay on top of the frame but never goes away. How do you put a loading text for an iframe?
You can wrap the iFrame in a DIV with a class for loading a back ground image.
<div class="iframe-loading">
<iframe src="iFrame SRC" frameborder="0" width="160" height="200" scrolling="no" longdesc="longdesc URL">
</iframe>
</div>
.iframe-loading {
background:url(../images/loading.gif);
}
A long time ago I used to do this:
<iframe src="iFrame" etc. ...>
Loading frame...
</iframe>

Remove description bubble from embedded google maps

Below is my google maps code which embeds a google map iframe into my website. However I need to know which part of the code gets rid of the description bubble as it is in the way and looks awful.
<iframe width="100%" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.co.uk/maps/embed/v1/vie?f=q&source=s_q&hl=en&geocode=Fef8HgMdTF8HACGtndVv4fvEAykHADl3VT_YRzGtndVv4fvEAw%3BFf-gHwMdtnoIACG4YnecgIb83ykH1S7ttDnYRzG4YnecgIb83w&q=mildenhall+to+raf+lakenheath&aq=&sll=52.387544,0.494041&sspn=0.099739,0.244446&ie=UTF8&ll=52.378862,0.524008&spn=0.035347,0.068778&t=m&saddr=mildenhall&daddr=raf+lakenheath&output=embed/v1/view"></iframe>
'&iwloc=near' no longer works with the new google api.
Thanks in advance
This answer :
Google Maps Embed - Remove Place Card
has a method of using a container div with overflow:hidden and a negative margin on the iframe to chop off the top containing the description bubble.
Just Add :
&iwloc=near in iframe src
Used like this:
<iframe width="400" scrolling="no" height="300" frameborder="0" src="https://maps.google.co.uk/maps?hl=en&q=so21+1aj&z=10&output=embed&iwloc=near" marginwidth="0" marginheight="0"></iframe>
Using jQuery I removed the bubble, from actual version of / place autocomplete version / google maps, modyfing one original function:
autocomplete.addListener('place_changed', function() {
// ... the function code, before it's closing
// tag I added 3 lines: //
$("div[class='gm-style-iw']").prev('div').remove(); // bubble
$("div[class='gm-style-iw']").next('div').remove(); // close button
$("div[class='gm-style-iw']").remove(); // text
});
it is also necessary to attach the jQuery library

Remove border from IFrame

How would I remove the border from an iframe embedded in my web app? An example of the iframe is:
<iframe src="myURL" width="300" height="300">Browser not compatible.</iframe>
I would like the transition from the content on my page to the contents of the iframe to be seamless, assuming the background colors are consistent. The target browser is IE6 only and unfortunately solutions for others will not help.
Add the frameBorder attribute (note the capital ‘B’).
So it would look like:
<iframe src="myURL" width="300" height="300" frameBorder="0">Browser not compatible.</iframe>
After going mad trying to remove the border in IE7, I found that the frameBorder attribute is case sensitive.
You have to set the frameBorder attribute with a capital B.
<iframe frameBorder="0"></iframe>
As per iframe documentation, frameBorder is deprecated and using the "border" CSS attribute is preferred:
<iframe src="test.html" style="width: 100%; height: 400px; border: 0"></iframe>
Note CSS border property does not achieve the desired results in IE6, 7 or 8.
In addition to adding the frameBorder attribute you might want to consider setting the scrolling attribute to "no" to prevent scrollbars from appearing.
<iframe src="myURL" width="300" height="300" frameBorder="0" scrolling="no">Browser not compatible. </iframe >
For browser specific issues also add frameborder="0" hspace="0" vspace="0" marginheight="0" marginwidth="0" according to Dreamweaver:
<iframe src="test.html" name="banner" width="300" marginwidth="0" height="300" marginheight="0" align="top" scrolling="No" frameborder="0" hspace="0" vspace="0">Browser not compatible. </iframe>
You can use style="border:0;" in your iframe code. That is the recommended way to remove border in HTML5.
Check out my html5 iframe generator tool to customize your iframe without editing code.
Use the HTML iframe frameborder Attribute
http://www.w3schools.com/tags/att_iframe_frameborder.asp
Note: use frameBorder (cap B) for IE, otherwise will not work. But, the iframe frameborder attribute is not supported in HTML5. So, Use CSS instead.
<iframe src="http://example.org" width="200" height="200" style="border:0">
you can also remove scrolling using scrolling attribute
http://www.w3schools.com/tags/att_iframe_scrolling.asp
<iframe src="http://example.org" width="200" height="200" scrolling="no" style="border:0">
Also you can use seamless attribute which is new in HTML5. The seamless attribute of the iframe tag is only supported in Opera, Chrome and Safari. When present, it specifies that the iframe should look like it is a part of the containing document (no borders or scrollbars). As of now, The seamless attribute of the tag is only supported in Opera, Chrome and Safari. But in near future it will be the standard solution and will be compatible with all browsers. http://www.w3schools.com/tags/att_iframe_seamless.asp
Style property can be used
For HTML5 if you want to remove the boder of your frame or anything you can use the style property. as given below
Code goes here
<iframe src="demo.htm" style="border:none;"></iframe>
I tried all of the above and if that doesn't work for you try the below CSS resolved the issue for me. Which just tells the browsers to not add any padding or margin.
* {
padding:0px;
margin:0px;
}
You can also do it with JavaScript this way. It will find any iframe elements and remove their borders in IE and other browsers (though you can just set a style of "border : none;" in non-IE browsers instead of using JavaScript). AND it will work even if used AFTER the iframe is generated and in place in the document (e.g. iframes that are added in plain HTML and not JavaScript)!
This appears to work because IE creates the border, not on the iframe element as you'd expect, but on the CONTENT of the iframe--after the iframe is created in the BOM. ($#&*##!!! IE!!!)
Note: The IE part will only work (of course) if the parent window and iframe are from the SAME origin (same domain, port, protocol etc.). Otherwise the script will get "access denied" errors in the IE error console. If that happens, your only option is to set it before it is generated, as others have noted, or use the non-standard frameBorder="0" attribute. (or just let IE look fugly--my current favorite option ;) )
Took me MANY hours of working to the point of despair to figure this out...
Enjoy. :)
// =========================================================================
// Remove borders on iFrames
var iFrameElements = window.document.getElementsByTagName("iframe");
for (var i = 0; i < iFrameElements.length; i++)
{
iFrameElements[i].frameBorder="0"; // For other browsers.
iFrameElements[i].setAttribute("frameBorder", "0"); // For other browsers (just a backup for the above).
iFrameElements[i].contentWindow.document.body.style.border="none"; // For IE.
}
Add the frameBorder attribute (Capital ‘B’).
<iframe src="myURL" width="300" height="300" frameBorder="0">Browser not compatible. </iframe>
In your stylesheet add
{
padding:0px;
margin:0px;
border: 0px
}
This is also a viable option.
Either add the frameBorder attribute, or use style with border-width 0px;, or set border style equal to none.
use any one from below 3:
<iframe src="myURL" width="300" height="300" style="border-width:0px;">Browser not compatible.</iframe>
<iframe src="myURL" width="300" height="300" frameborder="0">Browser not compatible.</iframe>
<iframe src="myURL" width="300" height="300" style="border:none;">Browser not compatible.</iframe>
If the doctype of the page you are placing the iframe on is HTML5 then you can use the seamless attribute like so:
<iframe src="..." seamless="seamless"></iframe>
Mozilla docs on the seamless attribute
If you are using the iFrame to fit the width and height of the entire screen, which I am assuming you are not based on the 300x300 size, you must also set the body margins to "0" like this:
<body style="margin:0px;">
<iframe src="mywebsite" frameborder="0" style="border: 0px solid white;">HTML iFrame is not compatible with your browser</iframe>
This code should work in both HTML 4 and 5.
also set border="0px "
<iframe src="yoururl" width="100%" height="100%" frameBorder="0"></iframe>
Try
<iframe src="url" style="border:none;"></iframe>
This will remove the border of your frame.
Use this
style="border:none;
Example:
<iframe src="your.html" style="border:none;"></iframe>
To remove border you can use CSS border property to none.
<iframe src="myURL" width="300" height="300" style="border: none">Browser not compatible.</iframe>
1.Via Inline Style set border:0
<iframe src="display_file.html" style="height: 400px; width:
100%;border: 0;">HTML iFrame is not compatible with your browser
</iframe>
2. Via Tag Attribute frameBorder Set 0
<iframe src="display_file.html" width="300" height="300" frameborder="0">Browser not compatible.</iframe>
3. if We have multiple I Frame We can give class and Put css in internal or externally.
HTML:
<iframe src="display_file.html" class="no_border_iframe">
HTML iFrame is not compatible with your browser
</iframe>
CSS:
<style>
.no_border_iframe{
border: 0; /* or border:none; */
}
</style>
Its simple just add attribute in iframe tag frameborder = 0
<iframe src="" width="200" height="200" frameborder="0"></iframe>
for me, adding worked perfectly
.iframe{
box-shadow: none !important;
}
this solution is particularly for a shopify theme I am editing. The shopify theme uses iframes in different ways throughout the whole theme and one of them glitched. I had to go into the css manually and overide the css attribute.
I had an issue with bottom white border and i could not fix it with border, margin & padding rules ... So add display:block; because iframe is an inline element.
This takes whitespace in your HTML into account.
iframe src="XXXXXXXXXXXXXXX"
marginwidth="0" marginheight="0" width="xxx" height="xxx"
Works with Firefox ;)
<iframe src="URL" frameborder="0" width="100%" height="200">
<p>Your browser does not support iframes.</p>
</iframe>
<iframe frameborder="1|0">
(OR)
<iframe src="URL" width="100%" height="300" style="border: none">Your browser
does not support iframes.</iframe>
The <iframe> frameborder attribute is not supported in HTML5. Use CSS
instead.