我正在使用 .data() 将对象实例存储到 DOM 元素。这在我所在的框架内有效,但由于我正在处理的应用程序内的规定,所有 jQuery 对话框都使用 iframe 填充。出于某种原因,我似乎无法从框架外部访问 .data() 存储的对象。有什么办法可以访问它?
我存储对象的代码(这是一个 CodeMirror 实例)。
$('#MyTextArea').data('CodeMirrorEditor', editor);
(editor
实例在哪里)
当我想访问它时,我正在使用:
var context = document.getElementById('DialogFrame').contentWindow.document);
console.log($('#MyTextArea', context);
console.log($('#MyTextArea', context).data('CodeMirrorEditor'));
第一个日志导致 textarea 被记录。这是正确的,因为引用的 ID 是<textarea>
. 第二个日志导致undefined
. 由于某种原因,存储的实例editor
丢失或无法从框架外部访问。
关于如何解决这个问题的任何建议?