在iframe中调整jQuery的问题

时间:2010-07-01 14:43:15

标签: jquery jquery-ui iframe resizable

我有第一页。哪个是用iframe打开jQuery Dialog的链接,里面有第二个页面。 第二页内有一个可调整大小的文本区域。 实际上textarea仅在我严格打开没有iframe的第二页时才可调整大小,但它在iframe中不可调整大小。 如何解决?

UPD: 这是我在第一页的HTML代码:

  1. <div id="dialog-system" title="system settings">
  2.   <div class="loadingDivForDialog"><img src="Control/Image/loading.gif" alt="loading..." /></div>
  3.   <iframe id="SystemFrame" src="" scrolling="no" frameborder="0"></iframe>
  4. </div>
* This source code was highlighted with Source Code Highlighter.

这是打开对话框的脚本:

  1. function showSystemDialog(propertyName, id_prov, psysName, currentItemForTick) {
  2.   $('.loadingDivForDialog').show();
  3.   $('#SystemFrame').hide();
  4.  
  5.   var defaultSrc = "Settings.aspx?pro=" + propertyName + "&id_prov=" + id_prov;
  6.   $("#systemFrame").attr('src', String(defaultSrc));
  7.  
  8.   $("#dialog-system").dialog({
  9.     resizable: false,
  10.     height: 300,
  11.     width: 680,
  12.     modal: true,
  13.     position: 'center',
  14.     buttons: {}
  15.   });
  16.   $('#SystemFrame').load(function() {
  17.     $('.loadingDivForDialog').hide();
  18.     $('#SystemFrame').show();
  19.     $('#SystemFrame').contents().find("input[value='Update']").click(function() {
  20.  
  21.       var obj = $("#" + currentItemForTick);
  22.  
  23.       if (obj.get(0).tagName == "INPUT") {
  24.         obj.attr('checked', true);
  25.       }
  26.       else {
  27.         obj = window.parent.$("input[value='" + psysName + "']");
  28.  
  29.         obj.attr("checked", true);
  30.       }
  31.     });
  32.  
  33.     $('#SystemFrame').contents().find("input[value='Cancel']").click(function() { $("#dialog-system").dialog("close") });
  34.  
  35.     $("#dialog-system").dialog("option", "height", parseInt($('#SystemFrame').contents().height(), 10) + 35);
  36.   });
  37.   return false;
  38. }
* This source code was highlighted with Source Code Highlighter.

这是来自第二页的textarea和脚本:

  1. <textarea name="ctl00$ContentPlaceHolderBody$ctrl02$fldText" rows="2" cols="20" id="ctl00_ContentPlaceHolderBody_ctrl02_fldText" class="textbox"></textarea>
  2.  
  3. <script type="text/javascript">$(function() {
  4.   $("#ctl00$ContentPlaceHolderBody$ctrl02$fldText").resizable({
  5.     handles: "se",
  6.     maxWidth: 340,
  7.     minWidth: 196,
  8.     minHeight: 18
  9.   });
  10. });</script>
* This source code was highlighted with Source Code Highlighter.
UPD:有什么想法吗?

1 个答案:

答案 0 :(得分:0)

当页面上有iframe时,我遇到类似的问题。我开始得出结论,iframe阻止了相关的鼠标处理程序进入jQuery中的resize逻辑。

不是严格意义上的解决方案,但它可能指向某人正确的方向。

更新:有关潜在修复的更多详细信息,请参阅此jQuery故障单的最新评论http://bugs.jqueryui.com/ticket/3176