Javascript短路未返回正确的值 - javascript

我有一个通过php页面上的php生成的js变量:

<script type="text/javascript">
   var shadeData = <?php echo $formattedShadeData; ?>;
</script>

此变量将仅在一页上定义,因此我想防止其他页面在加载时引发错误。在我的一个javascript文件中,如果尚未定义变量,我想停止运行代码,因此我一直在尝试:

var shadeData = shadeData || null;

if(!shadeData){ return false; }

但是,这不起作用,并且我仍在获取未定义shadeData的信息。这些行下面的代码中有几个使用变量的函数,但理想情况下,当第二行返回false时,该函数将不会运行。

参考方案

您不能在JavaScript程序的全局/顶级范围内使用return

稍作调整后,您的想法应该可以正常工作:将所有代码包装在IIFE中。

// If shadeData is already defined and falsey, this is unnecessary. But included for clarity.
var shadeData = shadeData || null;

(function () {
    if (!shadeData) {
        return;
    }
    // From now on within this function, shadeData is truthy.
}());

// shadeData is not necessarily truthy down here.
console.log('shadeData:', shadeData);

在现实世界中,这通常可以通过有条件调用的主输入函数(通常称为init)来完成。

function init() {
    // I am only run when shadeData is truthy.
}
if (shadeData) {
    init();
}

jQuery val函数在隐藏字段上不起作用? - javascript

这是我的HTML代码:<div style='display:none;' id='allformid'> <div> <form action='#'> <input type='text' name='name' …

在PHP服务器上从HTML进行数据挖掘 - javascript

我使用jQuery创建了一个不错的库,该库在浏览器中运行,并且基本上完成了从各种html页面中挖掘任意数据的任务。我想将此库迁移到运行PHP的Apache服务器并在服务器端运行它。但是,我不知道与PHP兼容的可靠浏览器模拟器。最坏的情况是在PHP中再次实现整个过程。该解决方案将涉及:发送请求解析HTML实现基本功能以执行Java / jQuery标准执行的任…

在访问另一页面后保留浏览器滚动位置 - php

我正在使用JS,JQuery和PHP,试图解决无限滚动问题。问题是,如果您在页面上滚动很长一段时间,并且用ajax加载了更多页面,然后单击链接转到新页面,那么在使用浏览器时如何自动转到旧页面中的同一位置新页面上的返回按钮?。新页面使用ajax滚动加载。 php参考方案 我想出的解决方案是在离开页面之前,将每个页面与相关数据一起存储。需要以下信息来保持滚动位置…

PHP Javascript更改浏览器后退按钮行为Laravel - javascript

我知道有各种各样的线程要求几乎相同的要求,但似乎没有一个真正满足我的需求。在我的网站上,我实现了搜索表单。一个简单的表单,其中包含一个名为searchQuery的输入字段和一个提交按钮。表单通过POST方法发送。我正在使用Laravel btw。。然后将搜索结果从控制器加载到视图中。这些在表中显示。现在来了有趣的部分:找到的元素是可单击的,并且您进入有关该元…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…