我正在使用Magento尝试将错误消息设置为弹出窗口,而不是显示内联。
我找到了一篇解释如何执行此操作的文章,但是当我尝试使用它时代码显示错误。 (http://azharkamar.com/5378/magento-modifying-default-message-alert-box-popup-dialog/)
这是我正在使用的代码:
$html .= '<a class="msgclose" href="#" onclick="document.getElementById("messages").style.visibility="hidden"">x</a>';
文章称,他们“必须逃避单引号才能使其发挥作用”。
我尝试编辑代码,并使用下面显示的代码。出现关闭按钮,但不会关闭该框。
$html .= '<a class="msgclose" href="#" onclick="document.getElementById("messages").style.visibility="hidden"">x</a>';
非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
您可以通过在其前面加上反斜杠或使用字母的双引号来转义单引号:
$var = 'Escape \' like this';
$var = "Or embed ' like this";
如果你需要嵌入javascript,可能会有点困难,因为Javascript字符串中的引号也需要进行转义。通常你可以通过巧妙地结合单引号和双引号来获得arround:
$html .= '<a class="msgclose" href="#" onclick="document.getElementById(\'messages\').style.visibility=\'hidden\'">x</a>';
或者您可以使用heredoc:
$html = <<<html
<a class="msgclose" href="#" onclick="document.getElementById('messages').style.visibility='hidden'">x</a>'
html;
顺便说一句,在HTML中转义引号是另一回事。您使用"
实体,因此如果您想在Javascript中使用双引号,结果将是:
$html .= '<a class="msgclose" href="#" onclick="document.getElementById("messages").style.visibility="hidden"">x</a>';
答案 1 :(得分:0)
您可以使用反斜杠转义代码中的单引号,如下所示:
$html .= '<a class="msgclose" href="#" onclick="document.getElementById(\'messages\').style.visibility=\'hidden\'">x</a>';
或者你可以从你的html中移出javascript:
$html .= '<a class="msgclose" href="#" onclick="hideMessage()">x</a>';
<script type="text/javascript">
function hideMessage() {
document.getElementById("messages").style.visibility = "hidden";
}
</script>
答案 2 :(得分:0)
你可以逃脱'在它们之前加上反斜杠(' - &gt; \')
$html .= '<a class="msgclose" href="#" onclick="document.getElementById(\'messages\').style.visibility="hidden">x</a>';
或使用EOF功能消除转义的需要。
$html .= <<<EOF
<a class="msgclose" href="#" onclick="document.getElementById('messages').style.visibility="hidden">x</a>
EOF;
答案 3 :(得分:0)
要在php中转义某个字符,请使用\
反斜杠。但是$html
逃离它后的价值将是不整洁的
我就是这样做的..
$html .= "<a class='msgclose' href='#' onclick='document.getElementById('messages').style.visibility='hidden''>x</a>";
我使用双引号,其中我使用单引号