【问题标题】:Get return parameter of jQuery function inner blade.php Laravel获取jQuery函数内部blade.php Laravel的返回参数
【发布时间】:2014-11-23 18:49:28
【问题描述】:

我有一个 jQuery 函数来检查 Flash 是否启用:

<script type="text/javascript">
    $(document).ready(function(){

        function isFlashEnabled()
            {
                var hasFlash = false;
                try
                {
                    var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
                    if(fo) hasFlash = true;
                }
                catch(e)
                {
                    if(navigator.mimeTypes ["application/x-shockwave-flash"] != undefined) hasFlash = true;
                }
                return hasFlash;
            }

    });
</script>

我想在我的 page.blade.php 中获取返回的 hasFlash 变量值(false 或 true),并检查内部“@if”助手是否启用了 flash:

@if (hasFlash())
 //if Flash is Enabled do this
 @else
 //do anything
@endif

这是正确的方法吗?

再次感谢

【问题讨论】:

    标签: javascript php jquery laravel-4 blade


    【解决方案1】:

    那么 Javascript 不能直接与 php 一起工作! 你需要自己做一些 ajax 的东西,或者用 javascript 和 html 的混合来编写你的代码。 而不是:

    @if (hasFlash())
     //if Flash is Enabled do this
     @else
     //do anything
    @endif
    

    在javascript中做:

    if (hasFlash()){
     // ajax/cal a php page directly for this function
     // you can bypass arguments from js (easier but not secure) or use database & session (hard to do but secure)
    }else{
     // ajax/cal another php page directly for this function
     // parameter bypass is the same as above
    }
    

    或者如果您的代码更简单,那么您可以直接用js编写它。

    您还可以使用 jquery 操作页面 (html) 并使用 ajax 从 php 获取内容并将其添加到页面中

    编辑:好的,让我用一个示例场景来解释一下:
    假设当 Flash 启用时,您希望拥有 Flash 播放器内容,而当 Flash 禁用时,您希望显示公证文本。
    我假设你想这样做:

    @if (hasFlash())
        //if Flash is Enabled do this
        echo '<media........>'; //whatever you html is.
    @else
        echo '<p>Your flash disabled. ...</p>'; //whatever your error is.
    @endif
    

    我建议,解决此问题的最简单方法是在检测到客户端没有 Flash 后操作您的 html,如下所示:

    在 HTML 中:

    您的闪光灯已禁用。 ...

    在 Javascript 中:

    <script type="text/javascript">
        function isFlashEnabled() {
            var hasFlash = false;
            try {
                var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
                if (fo) hasFlash = true;
            } catch (e) {
                if (navigator.mimeTypes ["application/x-shockwave-flash"] != undefined) hasFlash = true;
            }
            return hasFlash;
        }
        $(document).ready(function () {
            if(!isFlashEnabled()){
                $('#flash_container').css('display','none');
                $('#no_flash_container').css('display','');
            }
        });
    </script>
    

    但是,您想在用户没有 falsh 时调用一些 php 函数,那么您应该这样做: 1. 创建一个包含你的函数的 php 文件。 2.如果在javascript中运行$.get('url to php file created in 1');。 3. 使用 session/database/http_params 在页面之间传输 php 变量。

    如果您仍然需要更多帮助,我认为最好先阅读一些文档/wiki。

    【讨论】:

      猜你喜欢
      • 2019-02-10
      • 2014-05-28
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 2016-03-29
      • 2014-05-24
      相关资源
      最近更新 更多