0

美好的一天,我一直在谷歌上搜索我遇到的很多问题,我总是在这里找到答案,我希望有人能花时间回答这个愚蠢的问题。我是 JavaScript 的初学者,我碰巧正在创建一个个人网站,它使用 Flexpaper 作为我的一些文件的查看器,我只是想知道如何根据用户点击的 href 更改 URL . 这是 Flexpaper 片段:

        var swfVersionStr = "10.0.0";
        var xiSwfUrlStr = "playerProductInstall.swf";
        var file = "1984.swf";
        var flashvars = { 
              SwfFile : escape(file),
              Parameters here
              };

         var params = {

            }
        Parameters and Attributes here
        swfobject.embedSWF(
            "FlexPaperViewer.swf", "flashContent", 
            "700", "550",
            swfVersionStr, xiSwfUrlStr, 
            flashvars, params, attributes);
        swfobject.createCSS("#flashContent", "display:block;text-align:left;");`

我打算将查看器放在 iframe 上或仅放在一边,然后将链接放在另一边或框架上。

<a href="books/google search APIs.swf">Google search APIs</a>

它应该更改代码上的变量文件。我希望你能帮助我。

4

2 回答 2

0

尝试定义以下 javascript 函数(名为swapSwf):

function swapSwf(swfPath) {
    swfobject.embedSWF(swfPath, "flashContent", "700", "550");
}

javascript:并且只需在具有正确前缀的链接中使用它:

<a href="javascript:swapSwf('books/google search APIs.swf')">Google search APIs</a>
于 2011-01-26T03:36:29.697 回答
0

首先,使用一个函数来创建 SWF,这样您就可以为不同的文件传入单独的参数。

其次,在锚标记中,在函数末尾返回 false,同时在锚标记内的 onClick 事件处理程序中使用“返回 false”。这将取消浏览器中的链接,并允许该功能执行其业务(更改 FlexPaper 文档)。

<a href="books/google search APIs.swf" onClick="return showFile(this.href);">Google search APIs</a>

(我没有检查以下,所以你将不得不测试)

然后,将带有 swfFile 位置的 showFile 函数作为参数传入:

function showFile (swfFile) {
    var swfVersionStr = "10.0.0";
    var xiSwfUrlStr = "playerProductInstall.swf";
    var flashvars = { 
            SwfFile : escape(swfFile),
            Scale : 0.95, 
            ZoomTransition : "easeOut",
            ZoomTime : 0.5,
            ZoomInterval : 0.2,
            FitPageOnLoad : false,
            FitWidthOnLoad : false,
            PrintEnabled : true,
            FullScreenAsMaxWindow : false,
            ProgressiveLoading : true,
            MinZoomSize : 0.3,
            MaxZoomSize : 5,
            localeChain: "en_US"
        };
    var params = {}
    params.quality = "high";
    params.bgcolor = "#ffffff";
    params.allowscriptaccess = "sameDomain";
    params.allowfullscreen = "true";
    params.wmode = "opaque";
    var attributes = {};
    attributes.id = "FlexPaperViewer";
    attributes.name = "FlexPaperViewer";
    swfobject.embedSWF(
        "/FlexPaperViewer.swf", "flashContent", 
        "800", "550",
        swfVersionStr, xiSwfUrlStr, 
        flashvars, params, attributes
    );
    swfobject.createCSS("#flashContent", "display:block;text-align:left;");
    return false;
}
于 2011-01-26T03:36:44.327 回答