javascript canvas标记和描边文本方法
问题描述:
描边文本方法不起作用。问题是在下面的行:javascript canvas标记和描边文本方法
cns.strokeText(<?php echo posST($StreamVal[0][0]); ?>,x,y);
当我在该数组元素中使用的数值([0] [0]的元素),未出现问题,并且代码正常工作。但是当我使用字符串值时,该值不显示。
<?php
$StreamVal=array(
array("Stream1",80),
array("Stream2",10),
array("Stream3",10),
array("Stream4",10)
);
function posST($Stream)
{
return $Stream;
}
?>
<script>
var c = document.getElementById("Canvas");
var cns = c.getContext("2d");
var x=50*Math.cos((<?php echo posST($StreamVal[0][1]); ?>*Math.PI)/50)+100;
var y=50*Math.sin((<?php echo posST($StreamVal[0][1]); ?>*Math.PI)/50)+75;
cns.font = "30px Arial";
**cns.strokeText(<?php echo posST($StreamVal[0][0]); ?>,x,y);**
</script>
我该如何解决这个问题?
您echo'ing串的周围没有引号js的。 '... xt('',x ...'如果您查看了页面的源代码,它将如下所示:'... xt (这里有一些文字,x,y);'它会认为你引用了一些变量,而不是一个字符串 – 2014-12-01 21:29:47
@JonathanKuhn是正确的,你需要将你的语句用引号括起来,但是你不应该混用PHP和JavaScript作为一个良好的习惯,总是尽量避免这种情况,例如通过Ajax使用JSON。 – 2014-12-04 17:01:16