以下是我的代码:
<div id="accept" style="background-color:#83CC3F;"></div>
<script type="text/javascript" >
function accept1() {
return document.getElementById('accept').style.backgroundColor;
}
</script>
<?php
$js=<<<EOF
<script type="text/javascript" >
document.write(accept1());
</script>
EOF;
echo $js;
if($js == "rgb(131, 204, 63)") //rgb(131, 204, 63) rgb equivalent of hex code #83CC3F
{
echo "yes";
}
?>
以上代码不返回“是”,而$ js = rgb(131,204,63), 请解决我的问题
答案 0 :(得分:0)
你不能在php中使用var ..
$js=<<<EOF
<script type="text/javascript" >
document.write(accept1());
</script>
因为php是服务器端语言.. 和javascript是客户端。
为此你必须使用ajax,get和post方法
<强> UPDATE1:强>
记住在客户端浏览器上执行Javascript
始终是非常重要的,&amp; PHP
在服务器上执行。所以$js
不知道是什么
<script type="text/javascript" >
document.write(accept1());
</script>
将是,因为在它到达查看器浏览器之前不会执行。 &安培;同样,一旦观众浏览器得到它,PHP
就完成了,所以它无法关闭输出。
UPDATE2 :如果您执行以下操作,则会回显是。
if($js == '<script type="text/javascript" >document.write(accept1());</script>'); //rgb(131, 204, 63) rgb equivalent of hex code #83CC3F
{
echo "yes";
}
这是因为PHP变量$js
仍然设置了<script type="text/javascript" >document.write(accept1());</script>
值。
答案 1 :(得分:0)
您必须在js中检查此代码,但PHP不会渲染内容而不会从html元素中获取颜色。
为了通过eq到HEX检查RGB,您可以将每个部分RGB转换为DEC并连接此字符串,并在检查eq。
之后例如RGB(10,20,30):
DECTOHEX(10) . DECTOHEX(20) . DECTOHEX(30) == '#0A141E'