2010-04-07 2 views
0

У меня есть iframe. Я устанавливаю содержимое iframe (другой домен - например, www.google.com) через форму отправки. В настоящее время атрибут прокрутки установлен на «нет».Установить прокрутку в iframe динамически в IE

<iframe name="testFrame" id="testFrame" frameborder="1" scrolling="no" width="500" height="200"></iframe> 
<form name="testForm" id="testForm" action="http://www.google.com" target="testFrame"></form> 
<button name="testBtn" value="submit" onclick="submitForm();">submit</button> 

Я хочу динамически прокручивать этот iframe.

$("#testFrame").attr('scrolling','yes'); 

Это работает в Firefox, но не в IE. Также попытался с:

document.getElementById("testFrame").style.overflow="scroll"; 

Не повезло ... :(Помогите мне пожалуйста ...

+0

Хотя поздно делать какие-либо комментарии, но вы можете попробовать эту ссылку, http: // www.nazmulweb.com/works/Iframe/Dynamically_Set_Scrolling_in_Iframe.aspx – Hoque

ответ

0
<iframe src="address" id="IFrame" frameborder=0 horizontalscrolling="no" verticalscrolling="yes"></iframe> 

, что я использую в своих веб-приложений - вам нужно использовать horizontalscrolling/verticalscrolling свойства разделения в CSS в IE.

Смотрите также Dreaded iframe horizontal scroll bar can't be removed in IE?

Я не знаю, как сделать это в JQuery и т.д., хотя.

EDIT:

Я думаю, что это, возможно, должны быть созданы из innerHTML - с помощью document.createElement («» IFrame), которые могли бы использовать JQuery не будет работать, если я правильно помню - я думаю, что изменение этих свойств может не работают после создания элементов.

Попробуйте создать контейнер DIV с помощью JQuery или в HTML с ID, и вызвать что-то вроде:

var div = $('#MyDivID') 
div.html('<iframe src="about:blank" frameborder=0 horizontalscrolling="no" verticalscrolling="yes"></iframe>') 
var ifr = div.children(":first-child") // Get the IFrame created using innerHTML 
ifr.src = 'ADDRESS' 

Я действительно не знаю, что ли будет работать, хотя, я не использовал JQuery, прежде , поэтому я просто перехожу к документам JQuery: -P

+0

Спасибо за это решение ... Я попытался добавить эти атрибуты через jquery ... не повезло ... :( – Aneesh

+0

Я добавил несколько предложений - ответьте еще раз, если у вас все еще есть проблемы - попробовали ли вы пример как базовый HTML-файл без JQuery, и если он так работает? – cryo

0

Я попытался воспроизвести сценарий на своей локальной машине, и я заметил, что присутствие эффекта IFrame влияет на выполнение jQuery-кода. На загрузке страницы я попытался вызвать предупреждение : -

$(document).ready(function() { 
      alert("hello");    
     }); 

Но даже этот простой фрагмент кода не разыгрывается в IE. И как только я прокомментировал часть IFrame, приведенный выше код был выполнен нормально. Я пробовал другие операции jQuery над такими элементами, как div и т. Д., И все они работали плавно.

Является ли это моим наблюдением или другими, которые уже испытали это раньше.

+0

для меня jquery работает с iframe .. – Aneesh

2

мы можем изменить innerHTML конкретного div или td (если мы используем таблицы). Я использую таблицу, и она работает хорошо.

Это HTML-указатель этой страницы.

<body> 
    <table border="0"> 
     <tr> 
      <td> 
       <button name="chk" id="chk" style="height: 50px; width:80px; cursor:pointer;" onclick="scrollme()">Click me</button> 
      </td> 
      <td id='test' style="border:1px solid"> 
       <iframe frameborder=0 align=middle width=100% height=100% scrolling="no" src='linkframe.php' name='frm' id='frm' marginheight=0 marginwidth=0 ></iframe> 
      </td> 
     </tr> 
    </table> 
    <input type="hidden" id="tag" name="tag" value="0"/> 
</body> 

Это javascript-функция на индексной странице.

<script type="text/javascript"> 
    function scrollme() 
    {   
     if(document.getElementById('tag').value==0) 
     { 
      document.getElementById('test').innerHTML="<iframe frameborder=0 align=middle width=100% height=100% scrolling='yes' src='linkframe.php' name='frm' id='frm' marginheight=0 marginwidth=0 ></iframe>"; 
      document.getElementById('tag').value=1; 
     } 
     else 
     { 
      document.getElementById('test').innerHTML="<iframe frameborder=0 align=middle width=100% height=100% scrolling='no' src='linkframe.php' name='frm' id='frm' marginheight=0 marginwidth=0 ></iframe>"; 
      document.getElementById('tag').value=0; 
     } 
    } 
    </script> 

в iframe вы можете прикрепить любую страницу. Поскольку моя страница была очень длинной, я не показываю это здесь. Я использую один скрытый ввод для отслеживания в innerhtml ячейки таблицы (в основном, элемент iframe).