我在某个文件夹中有一个html文件。该文件称为“ file.html”。我在桌面或其他任何地方创建一个指向“ file.html”的链接文件。链接文件的名称为“星期一”。
对于我的“ file.html”,我正在使用一些JavaScript来过滤正在创建的表的某些行。
我的问题是:是否可以读取链接文件的“星期一”,打开原始文件并将“星期一”设置为我现有的下拉菜单的选定条目?如果是这样,我该怎么办?
我的xslt文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<html>
<head><title>Shared Secrets</title></head>
<body onload="JavaScript_Filter();">
<h1>Dokumentation Shared Secrets durch RD/UEA</h1>
<img style="position: absolute; top:80px; left:920px;" src="../logo/logo.jpg" alt="Logo RD/U"></img>
<table id="myTable">
<colgroup>
<col width="150" style="background-color:e2e2e2"></col>
</colgroup>
<tr style ="background-color:a5a5a5">
<th rowspan="2">plane
<select id="modelRangeDropdown" onclick="JavaScript_Filter()">
<option selected="selected">All</option>
<xsl:for-each select="logstore/plane">
<option>
<xsl:value-of select="Name" />
</option>
</xsl:for-each>
</select>
</th>
<th colspan="2" width="330">date</th>
<th rowspan="2">Secret
<input type="checkbox" id="identicalSecrets" onclick="JavaScript_Filter()"></input>
<label for="identicalSecrets">Hide identical secrets</label>
</th>
</tr>
<tr>
<th align="center" style="background-color:a5a5a5">begin</th>
<th align="center" style="background-color:a5a5a5">end</th>
</tr>
<xsl:for-each select="logstore/plane/trigger">
<tr>
<td align="center"><xsl:value-of select="../Name"/></td>
<td align="center"><xsl:value-of select="date"/></td>
<td align="center"><xsl:value-of select="date"/></td>
<td><xsl:value-of select="secret"/></td>
</tr>
</xsl:for-each>
</table>
<script type="text/javascript" src="JavaScript_Filter.js"></script>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我的JavaScript代码:
// Just contains some filtering code... does not matter for my question
答案 0 :(得分:1)
链接(至少在Windows中是文件系统指针),当单击该链接时,操作系统将根据基础资源的mime类型打开引用的资源。因此,否,因为链接是由操作系统内部处理的,所以没有数据从链接传递到资源本身。
我的第一个想法是拥有一个名为“ Monday.htm”的HTML页面,该页面仅转发到您的目标HTML页面,然后检查其引荐来源网址。但是,这不适用于本地文件:
在以下情况下,浏览器不会发送Referer标头:
- 引荐资源是本地“文件”或“数据” URI。
- 使用了不安全的HTTP请求,并使用安全协议(HTTPS)接收了引荐页。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer
第二个选项是将您的标识符添加到所请求资源的URL中,然后使用该标识符进行标识。您的快捷方式页面将包含以下内容:
<html>
<head>
<meta http-equiv="Refresh" content="0;url=test.htm#Monday"/>
</head>
</html>
井号#
后面的单词将是我们的标识符。
现在在“主应用程序”中只需检查参数:
<html>
<body>
<script>
var id = document.location.hash.substring(1);
alert(id);
</script>
</body>
</html>
不知道这是否适合您。
答案 1 :(得分:0)
我也找到了对我有用的解决方案。 我已经创建了Internet_explorer.exe单击属性的快捷方式,并将目标路径更改为“ C:... / iexplore.exe”“ file:// path_to_html?parameter”。
现在可以读取我的URL并将子字符串(我的参数)保存到“ parameterModelrange”:
var currentLocation = window.location.href;
var parameterModelrange = currentLocation.substring(36);
然后我可以浏览我的下拉菜单,将每个条目与我的参数进行比较,如果在下拉菜单中找到了该条目,则可以选择所需的参数:
var mySelectNode = document.getElementById("modelRangeDropdown");
var l = mySelectNode.options.length;
for (var i = 0; i < l; i++) {
var opt = mySelectNode[i];
if (opt.text === parameterModelrange) {
document.getElementById("modelRangeDropdown").selectedIndex = i;
}
}