我有def connect_to_db_with_mysql_driver
begin
puts "Trying to connect to Mysql"
db = Sequel.connect(
// Connection stuff
)
if db.test_connection == true
Sequel::Model.db = db
else
raise "Mysql connection failed."
end
rescue => ex
puts ex
puts "Retrying..."
retry
end
end
wrapperPage.html
和<iframe class="header"
。在<iframe class="pageBody"
中有一个链接header
,点击后会清除<a class="clearLink"
的内容。
到目前为止,上述想法的以下实现不起作用。请帮我解决这个问题。
请注意,每个pageBody
和header
都会从不同的文件中加载。
wrapperPage.html
pageBody
header.html:
<div class=non-floater>
<iframe class="header" src="header.html"></iframe>
<iframe class="pageBody" src="pageBody.html" />
</div>
pageBody.html:
<script type="text/javascript">
$(document).ready(function() {
$(".clearLink").on("click", function() {
$('.pageBody').contents().find("body").html('');
});
});
</script>
<a class="clearLink" href="#">Navigation Button</a>
答案 0 :(得分:3)
尝试使用Demo
wrapperPage.html
<body>
<div class=non-floater>
<iframe class="header" src="header.html"></iframe>
<iframe class="pageBody" src="pageBody.html" />
</div>
<script>
var channel = new MessageChannel();
var header = $(".header")[0].contentWindow;
var pageBody = $(".pageBody")[0].contentWindow;
header.onload = function() {
this.postMessage("","*", [channel.port2])
};
channel.port1.onmessage = function(e) {
if (e.data === "clicked") {
$(pageBody.document.body).html("")
}
}
</script>
</body>
header.html
<body>
<a class="clearLink" href="#">Navigation Button</a>
<script>
var port;
onmessage = function(e) {
port = e.ports[0];
}
$(".clearLink").on("click", function(e) {
port.postMessage("clicked");
});
</script>
</body>
答案 1 :(得分:0)
您可以从iFrame获取主窗口的引用,如下所示: Window.Parent reference
然后,您可以指定一个事件来捕获主窗口中的触发器或函数(或仅在其他iFrame中)来管理它。
例如:
header.html
iFrame中的点击功能获取窗口参考。我希望它对你有所帮助。