Установите динамический прокрутку для iframe в IE - PullRequest
0 голосов
/ 07 апреля 2010

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 27 сентября 2012

мы можем изменить 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>

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

0 голосов
/ 07 апреля 2010

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

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

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

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

0 голосов
/ 07 апреля 2010
<iframe src="address" id="IFrame" frameborder=0 horizontalscrolling="no" verticalscrolling="yes"></iframe>

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

См. Также Страшную горизонтальную полосу прокрутки iframe нельзя удалить в IE?

Я не уверен, как это сделать в JQuery и т. Д.

EDIT:

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...