小编jov*_*van的帖子

第三个元素以Safari中的新行结尾

我有一个简单的Bootstrap布局:

<div class="row">
    <div class="footer_column col-md-4">
        <div class="footer_item">
            ABOUT
        </div>
        <div class="footer_item">
            <a href="{{ route('contact') }}">Contact Us</a>
        </div>
        <div class="footer_item">
            <a href="{{ route('terms') }}">Terms & Conditions</a>
        </div>
        <div class="footer_item">
            <a href="{{ route('privacy') }}">Privacy Policy</a>
        </div>
    </div>
    <div class="footer_column col-md-4">
        <div class="footer_item">
            SITE RESOURCES
        </div>
        <div class="footer_item">
            <a href="{{ route('rules') }}">General Rules</a>
        </div>
        <div class="footer_item">
            <a href="{{ route('rules') . '#scoring' }}">Scoring</a>
        </div>
        <div class="footer_item">
            <a href="{{ route('rules') . '#coins' }}">Game Coins</a>
        </div>
        <div class="footer_item">
            <a class="store-show">Store</a>
        </div>
        <div class="footer_item">
            <a href="{{ …
Run Code Online (Sandbox Code Playgroud)

css safari twitter-bootstrap

5
推荐指数
1
解决办法
179
查看次数

为什么 Laravel 的错误屏幕上的信息是隐藏的?

我接手了一个 Laravel 5.5 的项目,发生了一件我从来没有遇到过的事情——报错画面的内容全部换成了星星。

在此处输入图片说明

我不知道以前的开发人员为实现这一目标做了什么,但显然我希望能够看到这些信息。.env 内容似乎相当明显:

APP_ENV=local
APP_HOST=http://localhost
APP_DEBUG=true
APP_TESTMODE=false
APP_CACHE_ENABLED=true
Run Code Online (Sandbox Code Playgroud)

除此之外,还有用于 Stripe、AWS 等的 API 密钥,但不会阻止我查看错误屏幕上的信息。

为什么会出现这个问题,我该如何解决?

php laravel

5
推荐指数
1
解决办法
85
查看次数

将参数传递给jQuery函数?

这看起来很简单,但我对jQuery的经验不多,我无法绕过它.

假设我有一个动态生成的HTML表,并且在该表的每一行中都有一个链接:

<a id='edit'>Edit User</a>
Run Code Online (Sandbox Code Playgroud)

现在,链接应该调用一个函数,每个用户的ID作为参数.我可以这样做内联谎言:

<a id='edit' onClick='editUser(<?php echo $row['id']; ?>)'>Edit User</a>
Run Code Online (Sandbox Code Playgroud)

但是我如何在jQuery中执行此操作?

我可以像这样调用函数:

$('a#edit').click(function () {
      editUser()
      return false;
    });
Run Code Online (Sandbox Code Playgroud)

但是如何将ID传递给此函数?我知道我可以先将它粘贴到一个隐藏的区域然后通过元素id从那里获取它,但肯定有更好的方法吗?

我意识到所有链接都具有相同的id,所以我应该通过附加用户ID来动态创建链接ID吗?但那我该如何调用jQuery?

javascript php jquery

4
推荐指数
1
解决办法
876
查看次数

jQuery中的非法字符错误 - 无论函数内容如何

首先,我完成了我的研究,我找到了一堆类似的问题.但是,我没有找到适用于我的问题的答案.我发现的所有例子都与非转义字符,单/双引号意外等有关.另一方面,我在以下函数上遇到此错误:

$('.seq_input').blur(function(){
    //var id = $(this).data('id');
    //var index = parseInt($(this).val()),
    //element = $("#test-list li").eq(id).remove();
    //$("#test-list li").eq(index - 1).before(element); // -1 because users like 1 based indices

    alert('what?');
      })???;
Run Code Online (Sandbox Code Playgroud)

如你所见,我注释掉了所有内容,只是留下了一个警报,我仍然收到错误,指向函数的最后一行.它与其他函数无关,因为我只是在我当前的Javascript结尾处单独添加了这个函数.

有人可以告诉我这里发生了什么吗?为什么在地球上会发出一个只发出警报(甚至不做任何事情)的功能会出错?

注意:加载页面后会立即显示错误

javascript jquery

4
推荐指数
1
解决办法
9206
查看次数

使用会话和Cookie安全登录

我目前使用会话将用户登录到我的网站.现在,我想在混合中添加cookie,以便人们可以在几天后访问该网站,而无需再次登录.

我不想将密码存储在cookie中或加密任何东西 - 所以我的解决方案是将用户名存储在cookie中,并使用一种登录哈希(特定于每个用户的每次登录)创建另一个cookie.然后,在每个页面的顶部,检查cookie和登录会话.如果cookie存在但会话不存在,请找到用户名并将用户登录.

因此,这会在他们成功登录后发生($row['username']是他们输入的用户名):

$_SESSION['username']=$row[username];
$_SESSION['user_id']=$row['id'];
$loginhash = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 32);
$number_of_days = 14;
$date_of_expiry = time() + 60 * 60 * 24 * $number_of_days ;
setcookie( "userlogin", $row['username'], $date_of_expiry, "/" ) ;
setcookie( "loginhash", $loginhash, $date_of_expiry, "/" ) ;

$today=date("Y-m-d");

mysql_query("update members set last_login='$today',loginhash='$loginhash' where id='$row[id]' ") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

然后在每个页面的顶部,执行以下操作:

if($_COOKIE['userlogin'] && !isset($_SESSION[user_id])){
    $username=mysql_real_escape_string($_COOKIE['userlogin']);
    $loginhash=mysql_real_escape_string($_COOKIE['loginhash']);
    $result=mysql_query("select * from members where (username='$username' || email='$username') && loginhash='$loginhash' ") or die (mysql_error());
    $row=mysql_fetch_array($result);
    $_SESSION['username']=$row[username];
    $_SESSION['user_id']=$row['id'];
}
Run Code Online (Sandbox Code Playgroud)

然后,当然,当用户手动注销时取消设置cookie.

我的问题是,这是否安全(除了其他人使用用户计算机的危险)?为每次登录生成随机哈希,因此有人不能仅使用某人的用户名创建cookie并以该人身份登录.

登录脚本使用HTTPS,因此该方面没有危险.

php security cookies session

4
推荐指数
1
解决办法
2010
查看次数

如何在 d3.js 中设置 y 轴的最小步长?

我有一个条形图,其中值的范围为 0 到 5。这些值只能是整数 (0、1、2、3、4、5)。

然而,y 轴以较小的步长渲染,例如 0、0.5、1、1.5、2 等。我只想将轴值设置为整数,但使用域和范围对我没有任何帮助。

我没有看到设置类似的选项minimalInterval = 1。我该怎么做呢?我确信某个地方有一个选择。轴的当前代码:

var x = d3.scaleBand().rangeRound([0, width]).padding(0.1),
    y = d3.scaleLinear().rangeRound([height, 0]);

x.domain(data.map(function(d) { return d.day; }));
y.domain([0, d3.max(data, function(d) { return d.value; })]);

g.append("g")
    .attr("class", "axis axis--x")
    .attr("transform", "translate(0," + height + ")")
    .call(d3.axisBottom(x))
    .selectAll("text")
    .attr("y", 0)
    .attr("x", 9)
    .attr("dy", ".35em")
    .attr("transform", "rotate(90)")
    .style("text-anchor", "start");

g.append("g")
    .attr("class", "axis axis--y")
    .call(d3.axisLeft(y))
    .append("text")
    .attr("transform", "rotate(-90)")
    .attr("y", 6)
    .attr("dy", "0.71em")
    .attr("text-anchor", "end");
Run Code Online (Sandbox Code Playgroud)

javascript d3.js

4
推荐指数
1
解决办法
5477
查看次数

使用 Javascript 复制 HTML 内容,粘贴为格式化文本

我有一个用户可以输入原始 HTML 的字段。这看起来像:

<input type="text" id="editor" value="<p>Hi,</p><p>Here is a <a href='domain.com'>link</a> I'd like you to visit.</p>" />
Run Code Online (Sandbox Code Playgroud)

现在,我需要一个“复制到剪贴板”按钮来获取该字段的内容,以便我们可以将其粘贴为格式化文本(不带 HTML 标记)。在上面的例子中,复制/粘贴输出应该是:

Hi,

Here is a [link][1] I'd like you to visit.
Run Code Online (Sandbox Code Playgroud)

我已经实现了“复制到剪贴板”按钮,如下所示:

let answer = document.getElementById("editor");
answer.select();
document.execCommand("copy");
Run Code Online (Sandbox Code Playgroud)

这会将输入的内容放在剪贴板上,但是当我将其粘贴到其他地方时,我会得到原始 HTML。

我需要某种方法将 HTML 转换为格式化文本,但我找到的唯一解决方案是这个,它不适用于链接:

在此处输入链接描述

有没有原生的 Javascript 方法可以做到这一点?如果没有,最好的解决方案是什么?

html javascript

4
推荐指数
1
解决办法
96
查看次数

在创建时从多对多方法附加所有可能的关系吗?

我有两个名为Position和Event的模型,它们彼此之间具有多对多关系。

  • 事件:
<?php

class Event extends Model
{
    protected $fillable = [
        'name', 'opta_id'
    ];

    public function positions() {
        return $this->belongsToMany(Position::class);
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 位置:
class Position extends Model
{
    protected $fillable = [
        'name', 'short_name'
    ];

    public function events() {
        return $this->belongsToMany(Event::class);
    }
}
Run Code Online (Sandbox Code Playgroud)

每个数据库中的event每个position数据库都应有一个透视条目,没有例外。因此,每当用户创建一个新event条目时,我都希望为每个现有条目创建一个透视条目position

我正在努力使用文档和SO来解决这个问题。我可以通过显式命名db中所有位置的ID来使用sync()或attach()进行连接。在EventControllerstore方法中:

$data = $request->all();
$event = Event::create($data);
$event->positions()->sync([1, 22, 34, 167]);
Run Code Online (Sandbox Code Playgroud)

但是,要使此方法起作用,我首先必须从positions表中获取所有条目,将它们格式化为ID数组,然后将它们传递给此方法。有任何内置或规范的方法可以做到这一点吗?

events database-relations laravel eloquent

3
推荐指数
1
解决办法
153
查看次数

Blur事件取消Vue组件中的点击事件

我有一个搜索组件Vue.js。当您在文本输入中键入内容时,将从服务器获取搜索结果列表,然后显示在搜索字段下方的列表中。当您单击其中一个结果时,submit会触发该事件。

但是,现在我尝试向文本输入添加模糊事件,当用户单击远离输入时,该事件应该隐藏结果列表。这工作得很好,除了一种关键情况 - 单击结果不再触发事件submit

我明白为什么会这样 - 该blur事件显然在该事件之前触发click,并在可以在其中一个结果上注册单击之前隐藏结果列表。我的问题是,我该如何解决这个问题?在文本输入外部单击时,我需要关闭结果列表,但显然我还需要该submit方法才能发挥作用。

这是完整的组件:

<template>
    <div class="search basic-search">
        <input type="text" v-model="search_string" v-on:keyup="search" v-on:focus="activate" v-on:blur="inactivate" class="form-control search" placeholder="Search stocks" />
        <div :class="['search-results', active === true ? 'active' : '']">
            <div class="search-result" v-for="result in search_results" v-on:click="submit(result.id)">
                {{ result.name }} ({{ result.ticker }})
            </div>
        </div>
    </div>
</template>

<script>
    export default {
        data: function() {
            return {
                search_string : '',
                search_results : [],
                active : false
            };
        }, …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js

3
推荐指数
1
解决办法
3745
查看次数

即使元素存在,Vue.js 中的“焦点不是函数”

我试图专注于 Vue.js 中的文本区域,但出现以下错误:

TypeError: _this2.$refs[ref].focus is not a function
Run Code Online (Sandbox Code Playgroud)

这是文本区域:

<textarea v-model="text[key].content" :ref="text[key].text_id" class="text-textarea" @focus="makeCurrent(key)" v-on:keyup="detectVariable(key, text[key].text_id)"></textarea>
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

let ref = 'foobar';
console.log(this.$refs[ref]);
this.$refs[ref].focus();
Run Code Online (Sandbox Code Playgroud)

打印console.log出正确的文本区域:

0: textarea.text-textarea
Run Code Online (Sandbox Code Playgroud)

但是当我尝试集中注意力时,我收到了上面提到的错误。我完全不理解这种行为。存在ref并指向正确的(这是目前页面上textarea唯一的,以避免混淆),但不是它的函数?textareafocus

javascript vue.js

3
推荐指数
1
解决办法
6347
查看次数