这是我的代码:
<script>
document.getElementById(div').innerHTML = '<a href="javascript:void(0);" onclick="openPhpFile (\'asdasD\\Asdeqw.txt\');">efff</a>';
</script>
当openPhpFile
函数运行时,我会提醒文件名,\字符就会消失,即使它们加倍。 addslashes()
没有帮助;它能成为什么?
答案 0 :(得分:3)
你应该这样做:
<script type='text/javascript'>
(function () { // Closures are your friend
// Declare variables
var theDiv, theLink;
// Create the link and assign attributes
theLink = document.createElement('a');
theLink.innerHTML = 'efff';
theLink.href = '#';
theLink.onclick = function () {
openPhpFile('asdasD\\Asdeqw.txt');
};
// Get a reference to the container, empty the container and add the link
theDiv = document.getElementById('div');
theDiv.innerHTML = '';
theDiv.appendChild(theLink);
})();
</script>
请记住,如果您在PHP引号内echo
,则实际上需要 4 反斜杠。这是因为PHP也将使用双反斜杠序列,并且只输出一个。因此,如果您希望PHP回显2个反斜杠,则需要输入4个。
答案 1 :(得分:2)
尝试:
var div = document.getElementById("div");
div.innerHTML = '<a>efff</a>';
div.firstChild.onclick = function () {
openPhpFile('asdasD\\\\Asdeqw.txt');
};
答案 2 :(得分:1)
如果您打开js控制台,您会看到它已转入asdasD\Asdeqw.txt
所以尝试添加另一个斜杠。
'<a href="javascript:void(0);" onclick="openPhpFile (\'asdasD\\\Asdeqw.txt\');">efff</a>'
答案 3 :(得分:1)
你是否尝试过为每个反斜杠放4个而不是2个或3个?
答案 4 :(得分:1)
只是想知道你为什么需要反斜杠?不是所有OS的支持(甚至更喜欢)正斜杠?也许我已经在Linux世界中待了太久。
我会使用正斜杠,至少对于你的双反斜杠(显然不是引号)。我很想知道你在做什么,这意味着正斜杠不起作用。