小编Pet*_*ter的帖子

如何从JavaScript中的URL中删除"http://"

我遇到了一个奇怪的情况.我正在编写一个JavaScript书签,允许用户轻松快速地点击并共享外部网站到我们的网站.它只是得到标题,页面URL,如果他们在页面上选择了任何文本,它也会抓取它.

问题是它由于某种原因无法与外部域一起使用,因此如果我们在内部使用它,我们最终会得到一个共享窗口,其URL格式如下:

http://internaldomain.com/sharetool.php?shareid=http://internaldomain.com/anotheroddpage.html&title= ....

这工作正常,但如果我们尝试使用外部域并最终得到如下格式的URL:

http://internaldomain.com/sharetool.php?shareid=http://externaldomain.com/coolpagetoshare.html&title= ...

然后我们在页面上出现Forbidden Error并且无法加载...如果我们手动删除http://外部域地址,它会再次加载.

所以..我认为解决这个问题的最佳解决方案是修改JavaScript书签以删除http它正在加载窗口.以下是我当前的bookmarklet的外观:

javascript:var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='http://internaldomain.com/sharetool.php',l=d.location,e=encodeURIComponent,u=f+'?u='+e(l.href)+
Run Code Online (Sandbox Code Playgroud)

如您所见,e(l.href)是传递URL的位置.

如何修改它以删除外部域http://

javascript regex bookmarklet

44
推荐指数
3
解决办法
6万
查看次数

使用Javascript检查字符串是否以http开头

我一直在寻找这个问题的答案,我发现的所有答案都不是用JavaScript编写的.

我需要一种方法,在javascript中,检查字符串是否以http,https或ftp开头.如果它不以其中一个开头,我需要在前面添加字符串http://.indexOf对我不起作用我不认为我需要http,https或ftp.此外,我不希望google.com/?q=http://google.com触发它有效,因为它不以http开头,而indexOf会触发它为真(如果我没有完全弄错).

我发现的最接近的PHP正则表达式是这样的:

function addhttp($url) {
   if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
      $url = "http://" . $url;
   }
   return $url;
}
Run Code Online (Sandbox Code Playgroud)

来源:如果在网址中不存在http,如何添加http

我只是不知道如何将其转换为javascript.任何帮助将不胜感激.

javascript regex

33
推荐指数
4
解决办法
4万
查看次数

去模板.ExecuteTemplate包含html

我已经按照本教程:http://golang.org/doc/articles/wiki/final.go并根据我的需要稍微修改了它.问题是我想在模板中支持HTML.我意识到这是一个安全风险,但目前并不是一个问题.

页面呈现的结果:

<h1>this<strong>is</strong>a test</h1>
Run Code Online (Sandbox Code Playgroud)

让我解释一下代码:

type Page struct {
    Title string
    Body  []byte
}
Run Code Online (Sandbox Code Playgroud)

我想要存储HTML的数据存储在Page.Body.这是类型[]byte,这意味着我不能(或我可以?)运行,html/template.HTML(Page.Body)因为该函数需要一个字符串.

我有这个预呈现模板:

var (
    templates = template.Must(template.ParseFiles("tmpl/edit.html", "tmpl/view.html"))
)
Run Code Online (Sandbox Code Playgroud)

而实际ExecuteTemplate看起来像这样:

err := templates.ExecuteTemplate(w, tmpl+".html", p)
Run Code Online (Sandbox Code Playgroud)

其中w是w http.ResponseWriter,tmpl是tmpl string,而p是p *Page

最后我的'view.html'(模板)如下所示:

<h1>{{.Title}}</h1>
<p>[<a href="/edit/{{.Title}}">edit</a>]</p>
<div>{{printf "%s" .Body}}</div>
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情:

  • {{printf "%s" .Body | html}} 什么都不做
  • 我已经包含github.com/russross/blackfriday(Markdown处理器)并运行p.Body = blackfriday.MarkdownCommon(p.Body)了正确将Markdown转换为HTML,但HTML仍然作为实体输出.
  • 编辑:我尝试了下面的代码(我不知道为什么格式混乱),它仍然输出完全相同.

    var s template.HTML s = …

go go-templates

24
推荐指数
3
解决办法
2万
查看次数

Bash .profile没有加载

我不确定发生了什么,但我的〜/ .profile不再加载了.

以下任何人都可以看到错误吗?

export PS1="\u@local [\w]# "
export EDITOR="subl -w"
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced

alias vst="ssh -i ~/.ssh/vst root@vst"
Run Code Online (Sandbox Code Playgroud)

我知道使用PS1这样的事实,就像我试图做的那样应该这样做,Peter@local [~/path/to/file]#但事实并非如此.

有任何想法吗?

macos bash .bash-profile

12
推荐指数
2
解决办法
7739
查看次数

jQuery重新加载DOM?

我有一个页面上有一个按钮.当用户单击按钮时,它会动态呈现一个表单(即它不仅仅显示一个隐藏的表单......它完全使用jQuery创建它).

我的问题是新创建的表单不响应任何jQuery命令.这是我目前渲染表单的代码.

$("#savenewlang").click(function(e) {
    console.log("savenewlang has been clicked");
});
Run Code Online (Sandbox Code Playgroud)

因此,当他们点击提交按钮但它没有运行时,它应该只是console.log.

知道如何重新加载DOM或分配正确触发的实际事件吗?

jquery dom

7
推荐指数
2
解决办法
3万
查看次数

从私有Git存储库推送/拉出的Bash脚本?

我正在尝试找到一种方法,我可以编写一个bash脚本,每隔午夜从我们的私有Github存储库自动提取并更新我们的开发站点.

由于显而易见的原因,我们的回购是私有的,我发现的任何接近的东西总是要求密码.我们的服务器有它自己的Github帐户,它用于从存储库推送和拉取,但我只是不知道如何自动执行此操作.

谁能指出我正确的方向?

git bash github git-bash

6
推荐指数
1
解决办法
6111
查看次数

MySQL欧洲人物

我无法想象我的生活.

我有一个查询,可以在页面上提取元素的翻译.因此,该页面上可以显示任意数量的15种语言.当我开始添加瑞典语等任何具有符号的语言时,例如ö整个字段中的结果返回一个空字符串.

我已经验证了桌面上的编码,它声称它正在使用,UTF-8但看到这不起作用我很困惑.

这是我正在使用的查询:

SELECT
   form.form_id,
   elem.elem_type,
   elem.elem_name,
   elem.elem_format,
   elem.elem_required,
   trans.trans_label,`
   trans.trans_description,
   trans.trans_defaultValue,
   trans.trans_other,
   elem.elem_advancedcommand
FROM
   events_form form
LEFT JOIN
   events_form_elements elem
ON
   form.event_id = elem.event_id
INNER JOIN
   events_form_translations trans
ON
   elem.elem_id = trans.elem_id
INNER JOIN
   events_form_languages lang
ON
   trans.lang_id = lang.lang_id
WHERE 
   form.form_id = '{$formid}' AND lang.language = '{$language}'
ORDER BY
   elem.elem_sortorder
Run Code Online (Sandbox Code Playgroud)

现在我尝试做类似的事情:

CONVERT(CAST(trans.trans_description as BINARY) USING latin1) as trans_description,

强制它转换编码,但根本不会产生结果.

在我得到结果后,它立即被json_encoded并返回给用户(Ajax请求).我不认为这是json_encode,因为做一个print_r输出数组会产生同样的问题.

另外..最后,我正在构建的系统是使用xPDO所以我不太确定这是否也是问题.

编辑:似乎PHP正在返回一个正确的值或至少一个值,例如这里是一个print_r转储:

[trans_label] => Ditt f?rnamn?
[trans_description] => 
[trans_defaultValue] …
Run Code Online (Sandbox Code Playgroud)

mysql utf-8 character-encoding

6
推荐指数
1
解决办法
660
查看次数

在Revel中输出所有语言字符串?

我正在Go中开发一个API服务器,服务器(目前)处理客户端的所有翻译.当API客户端获取特定数据时,它还会询问给定部分可用的转换.

理想情况下,我想拥有以下文件夹结构:

/messages
  /home.en
  /home.fr
  /home.sv
  /news.en
  /news.fr
  /news.sv
Run Code Online (Sandbox Code Playgroud)

newshome是不同的模块.

现在我对Revel的问题是,是否可以获取给定模块和给定语言环境的所有语言字符串?例如,为en-US拉出所有主页字符串.

编辑:

我想输出(我可以返回给客户端)一个键:翻译的值字符串.

任何指导将不胜感激.

go revel

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

如何为 Google Cloud Compute Engine 挂载磁盘以与 /home 一起使用?

我有一个虚拟机实例,带有一个运行 CentOS 7 的小型 10GB 启动磁盘,并且想要安装一个更大的 200GB 持久磁盘来包含与以前的专用服务器中的 /home 目录相关的数据(可能通过 scp)。\n以下是我的尝试:

\n\n

尝试#1,符号链接可能有效,但有一些问题。

\n\n
    \n
  • 将磁盘安装到 /mnt/disks/my-persistent-disk
  • \n
  • 在永久磁盘上创建文件夹来镜像旧服务器的 /home 目录中的文件夹。
  • \n
  • 在 /home 目录中为每个文件夹创建一个符号链接,指向永久磁盘。
  • \n
  • scp 从旧服务器到第一个帐户的 VM /home/example_account。意识到 scp 不遵循符号链接 (oops),因此文件转到启动驱动器而不是磁盘。
  • \n
  • 我想我可以 scp 到 /mnt/disks/my-persistent-disk 并管理符号链接和文件夹。这会带来问题吗?使用此配置制作虚拟机映像是否会延续到新实例(使用自动缩放等)?
  • \n
\n\n

尝试#2,安装到 /home。\n为了寻找与 ftp、scp 等一起使用的更“自然”的配置,我将磁盘安装在 /home/example_account 中

\n\n
$ sudo mkdir -p /home/example_account\n$ sudo mount -o discard,defaults /dev/sdc /home/example_account\n$ sudo chmod a+w /home/example_account\n#set the UUID for mounting at startup\n$ sudo blkid /dev/sdc\n$ sudo nano /etc/fstab\n$ lsblk\nNAME   MAJ:MIN RM …
Run Code Online (Sandbox Code Playgroud)

cloud centos google-compute-engine google-cloud-platform

5
推荐指数
0
解决办法
2643
查看次数

无法重新声明类 - 检查类是否已存在

我正在使用一个两次调用同一个类并抛出错误的脚本:

Fatal: Cannot redeclare class urlConverter (/var/www/core/cache/includes/elements/modsnippet/23.include.cache.php:14)
Run Code Online (Sandbox Code Playgroud)

我尝试将以下代码放入:

if( !class_exists( 'urlConverter', false ) )
{
    $urlConverter = new urlConverter( $modx );
}
Run Code Online (Sandbox Code Playgroud)

但是,我正在使用的CMS正在报告错误500并且无法在日志中看到它为什么会抛出该错误.

有谁知道如何检查该类是否已被正确声明?

编辑:

我正在使用CMS,因此Class被放在一个Snippet而不是实际文件中.这就是他们称之为片段的方式:

$data['viewonlinelink'] = $this->modx->runSnippet( 'urlConverter', array(
                                            'action' => 'encrypt',
                                            'string' => http_build_query( $string ) ) );
Run Code Online (Sandbox Code Playgroud)

我需要第二次打电话来获得不同的结果.

EDIT2:

这是urlConverter:

<?php
class urlConverter {

public $modx;

public function __construct( modX &$modx )
{
    $this->modx =& $modx;
}


public function action( $scriptProperties )
{
    return $this->$scriptProperties['action']( $scriptProperties['string'] );
}

private function encrypt( $str )
{
    return $str; …
Run Code Online (Sandbox Code Playgroud)

php oop class

4
推荐指数
2
解决办法
9446
查看次数