Reputation: 9076
This code runs:
@push('scripts')
<script>
function esFeatureDetect() {
console.log('Feature detection function has been called!');
}
</script>
@endpush
@push('scripts')
<script>
esFeatureDetect();
</script>
@endpush
The problem is that if I take the function and put it in another file (using webpack), suddenly the function is not found.
Here is what the code looks like in the external file:
function esFeatureDetect() {
console.log('Feature detection function has been called!');
}
Webpack bundles it fine. (I use Webpack for many other files too).
Here are the new blade directives:
@push('scripts')
<script src="/dist/js/full-feature-detect.js"></script>
@endpush
@push('scripts')
<script>
esFeatureDetect();
</script>
@endpush
But I get an error saying that:
esFeatureDetect is not defined
Why is it so?
The file is being pulled into the browser file, I can see the code in the console. I also tried the following call:
window.onload = esFeatureDetect;
and
window.onload = esFeatureDetect();
but neither helped.
Upvotes: 1
Views: 416
Reputation: 35180
If you want to be able to use you function in the global scope you'll need to attach it to the window
object.
window.esFeatureDetect = function () {
console.log('Feature detection function has been called!');
};
Upvotes: 3
Reputation: 29
have you tried to use asset() function?
<script src="{{asset('/dist/js/full-feature-detect.js')}}"></script>
Upvotes: 0