当<applet>标记加载ajax时,它无法初始化</applet>

时间:2012-04-18 10:33:11

标签: php jquery ajax applet netlogo

我有一个页面上有预览图像,当你单击预览图像时,JQuery使用ajax load()函数将其替换为Java applet。小程序好起来(它是netlogo),似乎找到了它正在寻找的.nlogo文件。

此.nlogo文件名将传递给带有<param>标记的applet。 applet是通用的,它将加载任何.nlogo文件并像NetLogo桌面应用程序一样运行它。

但是它没有显示任何内容。我知道它正在找到该文件,因为当我传递一个错误的文件名时,它会抛出一个错误,而现在它不会抛出一个。

如果代码只是正常地放在html中,它工作正常,但是当它加载了ajax时,applet没有正确初始化。

我猜测applet正在等待某种页面完成加载事件,这种事件永远不会发生。有什么方法可以伪造那条消息吗?

代码分布在各处,但这里是相关部分

div我正在搞乱

    <div id="previewDiv">
        Click the image to run the netlogo applet in your browser.<br>
        <img id="previewImage" src='<?php echo($modelPath . $previewFile); ?>' style="margin: 8px;" />
    </div>

使用applet替换预览图像的JQuery

$(document).ready(function(){
    $("#previewImage").click(function(){
        $("#previewDiv").load("appletcode.php?mid=<?php echo $mid; ?>");
    });
});

为ajax请求发送的applet代码

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
include "library.php";
connectdb();

$mid = mysql_real_escape_string($_GET['mid']);
$sql = "SELECT * FROM models WHERE modelId=$mid;";
$result = mysql_query($sql) or die($sql."<br/><br/>".mysql_error());
$row = mysql_fetch_array($result);

$version            = $row['netlogoVersionStr'];
$nlogocode          = $row['netlogoFile'];
$appletWidth        = $row['appletWidth'];
$appletHeight       = $row['appletHeight'];

$modelPath = "/complexityexplorer/netlogo/userfiles/$mid/";
$nlogoFilePath = $modelPath . rawurlencode($nlogocode);

?>


<applet code="org.nlogo.lite.Applet"
    archive="/complexityexplorer/netlogo/<?php echo rawurlencode($version) ?>/NetLogoLite.jar"
    width="<?php echo $appletWidth ?>" height="<?php echo $appletHeight ?>">
    <param name="DefaultModel"
        value="<?php echo $nlogoFilePath ?>">
    <param name="java_arguments"
        value="-Djnlp.packEnabled=true">
</applet>

上帝,我希望有人对此有一丝了解:/

0 个答案:

没有答案