Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过单击按钮打开html或javascript并显示文件系统中的.swf文件_Javascript_Html_Button_Swfobject - Fatal编程技术网

如何通过单击按钮打开html或javascript并显示文件系统中的.swf文件

如何通过单击按钮打开html或javascript并显示文件系统中的.swf文件,javascript,html,button,swfobject,Javascript,Html,Button,Swfobject,我找遍了所有地方,以下是我发现的最完整的部分: <!DOCTYPE html> <html> <body> <input name="PickedFile" type="file" accept=".swf"> <object width="550" height="400"> <param name="movie" value="PickedFile"> <scrip

我找遍了所有地方,以下是我发现的最完整的部分:

<!DOCTYPE html>
<html>

<body>
    <input name="PickedFile" type="file" accept=".swf">
    <object width="550" height="400">
        <param name="movie" value="PickedFile">
        <script type="text/javascript" src="/path/to/swfobject.js"></script>
        <script type="text/javascript">
            function loadSWF(url) {
                swfobject.embedSWF(url, "flashcontent", "550", "400", "7");
            }
        </script>
        <p><a href="PickedFile" onclick="loadSWF(PickedFile); return false;">
          Click here to load the SWF!
       </a></p>
        <div id="flashcontent"></div>
    </object>
</body>

</html>

函数loadSWF(url){
嵌入SWF(url,“flashcontent”、“550”、“400”、“7”);
}


我希望它是html格式的,这样就可以下载供脱机使用

@AHBagheri,你可以显示从服务器外部加载的SWF,我刚刚用Chrome验证过。我很惊讶它能起作用

@本,你的代码有多处缺陷。代码不起作用的原因有很多;写入(来自LearnSWFObject)时未考虑文件输入

下面是我在Chrome(macOS)中验证的更新代码。确保将SWFObject
指向您的SWFObject副本

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>Local SWF Test</title>
</head>
<body>

  <div>
    <input id="PickedFile" type="file" accept="application/x-shockwave-flash"/><br/>
    <button id="btn_load">Load the SWF!</button>
  </div>

  <div id="flashcontent"></div>

  <script src="swfobject.js"></script>
  <script>
  var loadSWF = function (){

    var file = document.querySelector("#PickedFile");

    if(file && file.files[0]){
      swfobject.embedSWF(file.files[0].name, "flashcontent", "550", "400", "7");
    } else {
      alert("You need to pick a file first.");
    }

  };

  document.querySelector("#btn_load").addEventListener("click", loadSWF);
  </script>

</body>
</html>

局部SWF试验

加载SWF! var loadSWF=函数(){ var file=document.querySelector(“PickedFile”); if(文件和文件.files[0]){ embedSWF(file.files[0]。名称,“flashcontent”、“550”、“400”、“7”); }否则{ 警告(“您需要先选择一个文件。”); } }; document.querySelector(“#btn_load”).addEventListener(“单击”,loadSWF);
代码的主要问题:

  • 您将所有内容都放置在
    元素中。这不仅是错误的,而且根本不需要
    元素——SWFObject不是这样工作的。我删除了
    和相关的
    节点

  • 输入的“accept”属性需要指定MIME类型,而不是文件扩展名。我把它改为
    应用程序/x-shockwave-flash

  • “PickedFile”输入有名称但没有ID。我删除了name属性并添加了ID属性,因为这是使用JavaScript查找元素时的常见做法(在本例中为
    document.querySelector
    )。参见

  • 使用文件输入时,输入的值是一个文件数组,数组中的每个项实际上都是一个对象,包含有关文件的详细信息,包括名称和文件路径。由于在文件输入中只需要一个文件,因此需要获取第一个数组项(
    files.file[0]
    ),然后可以使用该数组项访问文件名(
    files.file[0].name


  • 闪光是如此的死寂。。。几乎不再得到支持,支持率正在快速下降。。。你为什么用它来代替HTML5API?@Tschallacka用于flash游戏