嵌入一个以字符串形式存储在JavaScript中的.swf小文件

Embedding a tiny .swf file stored as a string in JavaScript

本文关键字:中的 JavaScript swf 小文 文件 存储 一个以 字符串      更新时间:2023-09-26

有任何方法可以从字符串中嵌入.swf文件吗?

这是一个场景:

  1. 我有一个很小的.swf文件,我想使用JavaScript动态加载到页面中。它不到1公斤
  2. 我可以将.swf文件的内容存储为JavaScript中的字符串,而不是往返于网络
  3. 如果我在JavaScript中有这样一个字符串,有没有任何方法可以将该字符串注入嵌入标记中,从而使.swf文件正常加载

这种技术适用于存储图标的小.svg图像,并将它们直接嵌入.css文件中。这对Flash来说可能吗?或者是否存在安全问题可以防止这种情况发生?

在现代浏览器中,您不能这样做,因为它们不允许通过data: URI在<object><embed>标记中包含活动内容。

例如,像这样的东西不起作用:

<html>
<body>
    <embed id="flash" width="200" height="200" type="application/x-shockwave-flash"></div>
    <script>
      var flashData = 'Q1dTBwAFAAB42oxUzU7bQBD+bK/tTQKBUsClQpV66IFDK9p7BQgB7SFO6nC3TLIEC//JcSk591BOHC2lUl+AN2ifoKeq175HTz2UznoTChISWNqf+ebbmdnZGZ9C+w3YP4FFDdv6JX01C/R1NJo2mis0067j+52gdxwMxPBFN4izSKyvv8Rls88k9ewHHuM/7A+i9CCIcBAMBXq5CAqxE2fFqJWehGI7CjP4p/BHiHtoBcUR8iDppzEOwyjyRK9ALylwGKVpjjTZSQqR7+ZBLOBnQS5I5Z/G6Xuy7I/UmuVpkRajTGAoRB9RmIhuMYoEDsQgTHbJKuL0ROynlYoWkfQVGoQJ/DxNC2x1u6Lo5Gm2GwWDIUodHKsLC190fDSkoK1W0HlTZsNeg57JwJ/p5TxsmSiu2zotTOeG90mD4ZQ1MIMzu09oWwnmRDBhP6EN0ZgjBSjBdMY6GtI1MzuVXDLaMvZGhvFNKy2SuMXMPTKnvBnKm+VQGMwib98JrexxuwqYezPSg/TbaCuSeSfJNqVtS7nQeM2bmK/br245aU8SoJCG15ZRW3zmnEuivoY/KLm0w+Rwy1lY4/HXjc/j8ZiAWVeearrykFQ3Zvbaim7KcTt9bkI3r9Hrcrjv2kpTd6eJrZL3AfIG2r1vUJHvkU3trmy26Umf/6UnQhUY+LxLguaoKGvnc5QhmFRO1ApGH79wVU8PbtQTFUodRqVhjC/QizRhX1wAU+ghQbaKgxmN69tprTC+eJPToHmqWiLVLMk3EVm1t9hZuocvdVwpGF/2nMn9HVUWxhqWqyZ7tHqVfmzSRXUizilAZ5ptSMXKawcbxh5tz56Sjdb+Vnfbb229dVEchcNr/52qn6s+lRl3Jn07ta9Xz2N4DjZJ/AcAAP//AwAfU9Bc';
      var flashObject = document.getElementById('flash');
      flashObject.src = 'data:application/x-shockwave-flash;base64,' + flashData;
    </script>
</body>
</html>