.data() html5 交叉 window
.data() html5 cross window
我正在尝试将一些数据放入 child windows html 标记中。但这似乎不起作用。我试着把它和一些 jquery 放在 child window 上,效果很好。
这是 parent window 中实现的代码,用于将数据发送到 child window:
$(".something", fullscreen.document).data("data1", "whatever");
return"undefined"在childwindow.
中加上下面的jQuery代码
console.log($(".something").data("data1"));
但是当我用 child jQuery-script 存储数据时,它工作得很好:
$(".something").data("data1", "whatever");
不允许交叉window数据存储到标签中吗?
jQuery 不使用 DOMElement
保存数据,但在范围内使用 jQuery 实例 。从 jQuery 的两个 实例 开始,无论是在同一个文档中(例如 jQuery 的两个版本)还是在不同的文档中,都不会共享内部数据,他们都无法访问它。
您将始终需要使用用于设置它的相同 jQuery 检索数据。
如果您想访问子元素中的数据,其中的数据是这样的:
$(".something", fullscreen.document).data("data1", "whatever");
那么你需要这样做:
parent.window.$(".something", docmuent).data('data1');
jQuery 使用自己的数据存储来存储您使用 .data()
设置的数据。 jQuery 的每个实例(在每个 window 中)都将拥有自己独立的数据存储,因此当您从另一个调用时不会从一个实例中获得结果。
如果您的数据只是一个字符串,那么您可能会发现更容易不用担心多个实例数据存储,只需使用 .attr()
将字符串存储为 [=21= 上的实际属性] 目的。然后,关于它的存储位置或如何访问它的问题为零,因为它直接位于 DOM 对象上,您可以从任一 jQuery 实例轻松访问该对象。
// store data on the object
$(".something", fullscreen.document).attr("data-data1", "whatever");
// read data from within the target window
console.log($(".something").attr("data-data1"));
请注意使用 HTML5 "data-xxx"
约定以避免任何属性命名与标准属性发生冲突。
我正在尝试将一些数据放入 child windows html 标记中。但这似乎不起作用。我试着把它和一些 jquery 放在 child window 上,效果很好。
这是 parent window 中实现的代码,用于将数据发送到 child window:
$(".something", fullscreen.document).data("data1", "whatever");
return"undefined"在childwindow.
中加上下面的jQuery代码console.log($(".something").data("data1"));
但是当我用 child jQuery-script 存储数据时,它工作得很好:
$(".something").data("data1", "whatever");
不允许交叉window数据存储到标签中吗?
jQuery 不使用 DOMElement
保存数据,但在范围内使用 jQuery 实例 。从 jQuery 的两个 实例 开始,无论是在同一个文档中(例如 jQuery 的两个版本)还是在不同的文档中,都不会共享内部数据,他们都无法访问它。
您将始终需要使用用于设置它的相同 jQuery 检索数据。
如果您想访问子元素中的数据,其中的数据是这样的:
$(".something", fullscreen.document).data("data1", "whatever");
那么你需要这样做:
parent.window.$(".something", docmuent).data('data1');
jQuery 使用自己的数据存储来存储您使用 .data()
设置的数据。 jQuery 的每个实例(在每个 window 中)都将拥有自己独立的数据存储,因此当您从另一个调用时不会从一个实例中获得结果。
如果您的数据只是一个字符串,那么您可能会发现更容易不用担心多个实例数据存储,只需使用 .attr()
将字符串存储为 [=21= 上的实际属性] 目的。然后,关于它的存储位置或如何访问它的问题为零,因为它直接位于 DOM 对象上,您可以从任一 jQuery 实例轻松访问该对象。
// store data on the object
$(".something", fullscreen.document).attr("data-data1", "whatever");
// read data from within the target window
console.log($(".something").attr("data-data1"));
请注意使用 HTML5 "data-xxx"
约定以避免任何属性命名与标准属性发生冲突。