我实现了一个在Linux机器上本地运行的HTML页面(使用最新的firefox版本)。它用于嵌入我编程的插件。
目前,我静态传递文件路径,插件必须加载,在HTML文件中进行硬编码:
<embed id="embed1" type="application/x-bbx" src="/tmp/testfile.bbx"></embed>
为所有.bbx
个文件生成HTML页面。我目前正在尝试通过添加<input type="file">
元素来弄清楚如何避免硬编码路径。目的是动态更改加载的文件(由src
指定),以避免为所有.bbx
文件生成HTML页面。
由于浏览器不允许访问文件路径:如何根据加载的文件更改embed
的来源?
由于一些技术原因,我想避免使用JQuery。另请注意,该页面仅由特定用户在本地运行。
编辑1:该插件是可编写脚本的,即我可以调用函数并使用JavaScript将参数传递给插件。因此,获取整个文件路径并将其传递给插件就足够了,而插件又在内部完成其余工作。
编辑2:为了澄清:我想避免让用户手动输入文件路径的负担,这就是为什么我打算使用<input type="file">
答案 0 :(得分:2)
var Target = "/tmp/testfile2.bbx";
var Source = document.getElementById('embed1');
var Clone = Source.cloneNode(true);
Clone.setAttribute('src',Target);
Source.parentNode.replaceChild(Clone,Source);
但浏览器的历史记录在这里没有事件......所以.back()将无法正常工作。 多数民众赞成我今天如何来到这里。希望这可以帮助。对不起,如果一个人没有融入正确的时刻。 ; - )
答案 1 :(得分:0)
如果我理解正确的话,应该这样做!
<script>
var embed1 = document.getElementById('embed1');
embed1.src = 'your path';
</script>
答案 2 :(得分:0)
这是一个完整的例子:
<input type="text" id="path" name="path" />
<input type="submit" id="submit" value="Change it" onclick="changePath()">
<embed id="embed1" type="application/x-bbx" src="/tmp/testfile.bbx"></embed>
<script>
function changePath() {
var e = document.getElementById('path');
var val = e.value;
var embed1 = document.getElementById('embed1');
embed1.src = val;
}
</script>