iFrame вызывает проблемы перетаскивания скриптов в IE7 (включая полный код)?

Когда я перетаскиваю ссылку, которая находится внутри перетаскиваемого элемента div, в iframe в IE7, я получаю очень странные результаты. Попробуйте приведенный ниже код и дайте мне знать, если у вас есть предложения, как это исправить.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <!--<script type="text/javascript" src="/js/prototype.js"></script>-->
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.2/scriptaculous.js?load=effects,dragdrop,controls"></script>
    <!--<script type="text/javascript" src="/js/scriptaculous.js?load=effects,dragdrop,controls"></script>-->
</head>


<body>
    <div id="test" style="background-color: #aaaaaa; width: 200px; height: 50px;">
        <a href="blah" onclick="blah(); return false;">blah</a>
    </div>
    <iframe>    
    </iframe>
</body>

<script>
function blah(){
    //blackbird.debug("blah");
}

    var dummy = new Draggable("test", {scroll:window,scrollSensitivity: 20,scrollSpeed: 25, revert: true, onStart: onDragStart, onEnd: onDragEnd });
    var temp;
    function onDragStart(drgObj,mouseEvent){
            temp = mouseEvent.target.onclick;
            mouseEvent.target.onclick = function(e){
                mouseEvent.target.onclick = temp;
                return false;
            }
    }

    function onDragEnd(drgObj,mouseEvent){
    }
</script>
</html>
3 ОТВЕТА
РЕШЕНИЕ

Я обнаружил, что единственный способ справиться с этим изящно - поместить полноразмерный тег div с прозрачностью = 1% на фрейм iframe, а затем перетащить содержимое поверх него.

PS проблема перетаскивания в IE6 и IE8 тоже.

3
15.12.2008 18:03:15

Вы можете опубликовать код? Я не уверен, что понимаю.

Я завернул iframe в div, и это не имело никакого значения.

<div style="filter:alpha(opacity=1); opacity: 0.01; -moz-opacity:0.01;">
     <iframe>   
     </iframe>
</div>
0
15.12.2008 18:14:39
извините, мне следовало быть более ясным ... слой div (после) iframe в DOM, чтобы он лежал поверх вашего iframe ... (например, если он непрозрачный, вы не должны видеть свой iframe ... затем установите непрозрачность альфа на очень низкое значение (например, 1%) ... теперь, когда вы перетаскиваете, iframe не будет регистрировать события
scunliffe 15.12.2008 21:49:01
непрозрачность: 0,01; / * хорошие браузеры * / фильтр: альфа (непрозрачность = 1); / * IE6 / IE7 * / -ms-фильтр: "progid: DXImageTransform.Microsoft.Alpha (Opacity = 1)"; / * IE8 * /
scunliffe 15.12.2008 21:51:34

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

У меня была проблема, что у звездного эффекта были проблемы с установкой его непрозрачности. то, что я сделал, было starteffect: '' в моем новом Draggable js-коде, и сделал чистый div с там в iframe.

Вот часть моего кода:

<div id="main_container">
    <div>
        <iframe></iframe>
    </div>
    <div id="youredragelelement"><img /></div>
</div>

для полной страницы iframe я зашел на этот сайт, и он отлично работает для меня: http://www.dev-explorer.com/articles/full-page-iframe

Надеюсь, поможет..

1
28.02.2009 19:13:25