我花了几个小时阅读 javascript 书籍、模式和查看 stackoverflow 问题,但我一直坚持将某些内容动态加载到 iframe 中
目标单击一个按钮,(1) ajax 发布到temp.php
数据(例如 src、高度、宽度、id)。(2)temp.php
设置 iframe 并返回相应的 html。(3) Javascript 预置数据。
这是我到目前为止的相应代码
(1)
$.ajax({
type:"POST",
data:{
'src':"target.php",
'frame_height':$(".mydiv").height(),
'frame_width':$(".mydiv").width()
},
url:"temp.php",
success:function (inHtml) {
loadConversation(inHtml,
我已经将 POST 变量加载到相应的 php 变量中。(2)
<iframe id="myTestFrame" src="<?php echo $src; ?>" width="<?php echo $width; ?>"
height="<?php echo $height; ?>" frameborder="0">
<p>Your browser does not support iframes.</p>
(3)
$('.mydiv').prepend(inHtml);
请假设语法正确。
target.php
确实运行了一个初始化滚动插件的简单javascript代码:
$(function () {
var Scroll = (function () {
var init = function () {
$("#content-1").mCustomScrollbar({});
$(".inner_content").mCustomScrollbar({autoDraggerLength:true});
$(".output a[rel~='_mCS_1_scrollTo']").click(function (e) {
e.preventDefault();
$("#content-1").mCustomScrollbar("scrollTo", $(this).attr("href"));
});
};
return { init:init };
})();
Scroll.init();
});
现在发生的事情是我可以直接从网络服务器调用 temp.php 并且它会正确加载。
但是一旦从主站点调用它 - 它就会中断(并且“未定义”启动)
我已经完成了相同的 iframe 帖子,然后使用另一个带有插件的 php 页面动态更新 src 并且它工作正常(单击时相同,ajax 帖子, prepend(html) ,我完全迷路了)。主站点在 jquery UI 的选项卡式界面中运行它,但我认为这没有任何区别 - 到目前为止我发现如果我在 init 中插入一个简单的“alert(document.height)”函数,警告框将包含 0,所以我认为 javascript 在 iframe 完成加载之前运行 - 但 Firebug 显示 NET 中的响应 HTML 非常好,代码相当短。(脚本放在右大括号之前的最后一个)