post - back后调用java-script函数启动flash游戏



在我的asp.net项目我想添加一个flash游戏,我使用

<object width = "700" height = "500">
    <param id = "game_param" value = "<swf_src>" name ="movie"/>
    <embed id = "game_embed" src = "<swf_src>" width="700" height= "500">
    </embed>
</object>

将游戏添加到页面中,我使用这个jquery函数来替换

属性
function startGame(path) {
    $("#game_param").attr("value", path)
    $("#game_embed").attr("src", path)
}

我的问题是,当我用回发调用这个函数时,属性被重置为它们的原始值,但是当我在没有回发的情况下调用它时,属性值是我想要的,游戏不起作用。我测试了一下,当我把SWF SRC输入到源代码时,它工作了。

这是我用来调用jquery函数的按钮:
<asp:Button ID="Button1" runat="server" OnClientClick="startGame("<real src>"); return false;" Text="Button" />

有没有一种方法可以做我想做的事情,而不是为每一款游戏创建一个网页?

您可以在post返回后呈现页面上的任何内容,在您的情况下,您可以呈现函数调用,下面是如何(基于您的代码):

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
<script>
    function startGame(path) {
        $("#game_param").attr("value", path)
        $("#game_embed").attr("src", path)
    }
</script>
<asp:Literal runat="server" ID="txtJsOnMe" EnableViewState="false"></asp:Literal>

后面的代码
protected void Button1_Click(object sender, EventArgs e)
{
    txtJsOnMe.Text = "<script>startGame("<real src>");</script>";
}

所以在post back之后将呈现函数之后的调用,然后运行你的游戏

最新更新