Итак, я просматривал все другие сообщения о переполнении стека и вокруг Google о том, как автоматически устанавливать высоту/ширину на iFrame. Я пережил около 15-20 из них, и до сих пор никто не работал. Позвольте мне попытаться объяснить мою ситуацию:Изменение размера динамического iframe (проблема с Chrome)
Я динамически настраиваю тело iFrame на своей странице. Мне нужно, чтобы iFrame автоматически устанавливал его высоту и ширину, чтобы весь текст был виден.
Мне нужно, чтобы это работало в IE (7 & 8), FireFox 3 и Chrome.
Вот другие проблемы, которые creap в вопрос:
- Я пишу в ASP.Net с главной страницы (так элемент тела может быть и речи).
- Мне нужно установить текст iFrame для каждой обратной передачи с сервера.
- Мне нужно изменить размер iFrame при изменении размера браузера.
- У меня есть доступ к javascript, ничего больше.
Я пишу все в одном домене, так что это не проблема.
Я чувствую, что у меня в настоящее время есть только буровая установка и развалится в любой момент. Он отображается корректно в IE, но имеет огромное нижнее поле в FireFox и вообще не отображается в Chrome (doc всегда имеет значение null).
Здесь (я старался быть как можно более подробно, дайте мне знать, если мне нужно объяснить более):
<script type="text/javascript">
function WriteIFrame()
{
// get the text i need to put in the iFrame (this is set from the server)
var iFrameContent = document.getElementById("<%= hiddenIFrameContent.ClientID %>").value;
var iFrameContainer = document.getElementById("divIFrameContainer");
// create the new iFrame object
var iFrame = document.createElement("iframe");
iFrame.setAttribute("id", "myIFrame");
iFrame.setAttribute("scrolling", "no");
iFrame.setAttribute("frameborder", "0");
// add the new iFrame object to the container div
iFrameContainer.appendChild(iFrame);
// find the correct inner document of the iFrame
var doc = iFrame.document;
if (doc == null && iFrame.contentDocument)
doc = iFrame.contentDocument;
//
// write the information into the iFrame
if (doc != null)
{
doc.open();
doc.writeln(iFrameContent);
doc.close();
}
// set the proper height
var height = doc.body.scrollHeight + iFrameContainer.offsetTop;
iFrame.setAttribute("style", "width: 100%; height: " + height + "px;");
}
</script>
<div id="divIFrameContainer" oninit="WriteIFrame();">
</div>
<iframe id="HelperIFrame" style="display: none;" onload="WriteIFrame();"></iframe>
<textarea id="hiddenIFrameContent" runat="server" style="display: none;" />
http://www.velocityreviews.com/forums/t647286-iframe-in-ie-and-ff-and-chrome-and-opera.html –
Pandiya, я увидел эту первую ссылку в сети и попытался сорвать все мои вещи и положить это, и я получаю те же результаты. В IE отлично, FF должен иметь большую нижнюю границу, и в Chrome ничего не отображается. – Miles