我网站上的所有网页都有相同的标题。我实现了这样:
extends('layouts.main')
现在在某些页面中,我需要发送成功的消息,而不是在其他页面中。我实现了这样:
return....->with(array(
sucessfulMessage => 'asdf'
));
请注意,我只是在一些页面中,而不是在所有页面中都这样做。
现在我想在JavaScript中使用该变量。我在layout.main中执行了此操作:
<head>
{{ HTML::script('/js/jquery-2.1.1.js')}}
@if(isset($successfulMessage))
<script>
var successfulMessage = "{{$successfulMessage}}";
</script>
@endif
{{ HTML::script('/js/myPopupScript.js')}}
</head>
然后在myPopupScript.js
我这样做了:
$(document).ready(function(){
if(!typeof successfulMessage === 'undefined'){
alert(successfulMessage);
}else{
alert("test");
}
});
即使已发送SuccessfulMessage,警报始终为test
。
当我在谷歌浏览器中使用F12查看实际的HTML时,我可以看到:
<script>
var successfulMessage = "asdf";
</script>
因此定义了变量。
答案 0 :(得分:1)
适用于我的代码是:
$(document).ready(function(){
var typeOfSuccessfulMessage = typeof successfulMessage;
if(typeOfSuccessfulMessage == 'string'){
alert(successfulMessage);
}else{
alert("undefined");
}
});
非常感谢@martinezjc,@ lowerends和@Cthulhu
答案 1 :(得分:0)
更改此代码:
修改强>:
尝试更改if / else javascript块中的条件
$(document).ready(function() {
@if(isset($successfulMessage))
var successfulMessage = {{$successfulMessage}};
@endif
if( !typeof successfulMessage === 'undefined' ) {
alert("test");
} else {
alert(successfulMessage);
}
});
希望这有效:)