我使用的HTML/PHP和JavaScript的组合来打开启动一个Flash应用程序一个新的浏览器窗口。这工作正常,但现在大多数用户不期望窗口弹出窗口,并经常忘记允许弹出窗口。所以我认为一个好的解决方案可能是使用Jquery的对话框:http://jqueryui.com/demos/dialog/#default。jQuery的对话框转换
我在这里寻找一些指导,因为这Flash应用程序需要很多东西传递给它如何与jQuery对话实现这一点。因此围绕这样做的一轮。
我首先创建HTML中的按钮有一堆东西掏出DB的:
function startmonitor(to, camerahash, cameraname, cameraflashquality)
{
var myForm = document.createElement("form");
myForm.method = "post";
myForm.action = to;
var myInput = document.createElement("input");
myInput.name="video";
myInput.value="Monitor";
myForm.appendChild(myInput);
myInput = document.createElement("input");
myInput.name="camera_hash";
myInput.value=camerahash;
myForm.appendChild(myInput);
myInput = document.createElement("input");
myInput.name="camera_name";
myInput.value=cameraname;
myForm.appendChild(myInput);
myInput = document.createElement("input");
myInput.name="camera_quality_flash";
myInput.value=cameraflashquality;
myForm.appendChild(myInput);
document.body.appendChild(myForm);
myForm.submit();
document.body.removeChild(myForm);
}
:
<button id="monitor" onClick='startmonitor("<?php echo htmlentities($_SERVER['REQUEST_URI']); ?>","<?php echo $result_cameras[$i]["camera_hash"]; ?>","<?php echo $result_cameras[$i]["camera_name"]; ?>","<?php echo $camera_quality_flash; ?>")'>Monitor</button>
然后我在从按钮传递的参数的JavaScript创建表单
最后,在PHP中进一步处理这一点,并调用JavaScript推出的Flash应用程序:
if (isset($_POST['video'])) {
//get user hash for monitor app
$query_user_hash = "SELECT id_hash FROM #__users WHERE user_id=".$user->id;
$db->setQuery($query_user_hash);
$id_hash = $db->loadResult();
$camera_hash = check_input($_POST['camera_hash']);
$camera_name = check_input($_POST['camera_name']);
$camera_quality_flash = check_input($_POST['camera_quality_flash']);
echo '<script type="text/javascript">
window.open("flashapp/app.php?user='.$id_hash.'&camera='.$camera_hash.'&name='.$camera_name.'&quality='.$camera_quality_flash.'", "Flash_monitor", "location=0,menubar=0,status=0,scrollbars=0,width=360,height=405")
</script>';
}
无甚至不知道从哪里开始。我是否尝试使用jQuery对话框在哪里做window.open
?在这种情况下,我不确定我如何传递相同的参数?还是有更好的方法来解决这个问题。
您的权利,我只需要用户id_hash,这是很容易得到。不知道为什么我走这条路。这看起来非常优雅。但由于引用(您可以在监视器按钮中看到)而失败。你确定这种报价方式吗?我从来没有见过这种方式。我会继续玩这个。 – Tom 2012-01-08 02:02:15
尝试上面编辑的代码 – 2012-01-08 03:21:33
上面的代码应该工作。 @NateBolam:几个建议:第2个''