【问题标题】:Jquery data acess in iframeiframe中的jquery数据访问
【发布时间】:2012-08-18 07:40:57
【问题描述】:

我的框架结构如下:

<frameset rows="*" frameborder="NO" framespacing="0" border="0">
<frame src="principal.aspx" id="main">
</ frameset>

principal.aspx

<script>
var window = $ ("#window"). kendoWindow ({
         width: "50%"
         height: "50%"
         modal: true,
         visible: false,
         actions: ["Refresh", "Maximize", "Close"]
     }). date ("kendoWindow");
</ script>

<iframe SRC="URL" id="frmConteudo"> </ iframe>
<div id="window"> </ div>

现在我遇到了问题。我在 frmConteudo 里面,想访问 div 窗口。我可以通过这种方式毫无问题地访问 div 窗口:

$ ("#window", frames["main"].document)

不过需要访问。 Date("kendoWindow") 和下面两种形式一样是无效的:

var frame = frames["main"].document;
$ ("#window", frame).data("kendoWindow");
$ ("#window", frame).data(frame, "kendoWindow");

有什么想法吗?

【问题讨论】:

  • 如果您为每个页面运行一个单独的 jQuery 实例,那么它们不会共享它们的 .data 缓存。尝试改用框架的$frames["main"].$("#window").data("kendoWindow")
  • 作为一个(可能无关紧要的)旁白,我会避免使用var window = ...,因为 window 具有特殊含义。
  • 剑道的例子他们经常使用var window,考虑到这是一个非常重要的词,这绝对是荒谬的...... +1
  • 完美@pimvdb。我用top.frames["main"].$("#window").data("kendoWindow") 没关系。

标签: jquery iframe window frame kendo-ui


【解决方案1】:

我设法解决了这个问题:

我在principal.aspx中添加了如下方法

<script>
         function GetWindow () {
             return $ ("#window") data ("kendoWindow");
         }
</ script>

我从我的框架内调用,使用这样的对象的方法:

top.frames var frame = ["main"];
var window = frame.GetWindow ();

按照 pimvdb 的建议,效果也很好。

top.frames["main"].$("#window").data("kendoWindow");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多