2017-04-09 4 views
0

URLが存在しない場合を除いて、このgreasemonkeyスクリプトが動作します。 URLを除いて全てを小文字にして、要求されたものを置き換えます。ただし、DIV内にURLが存在しない場合でも、このように動作する理由はわかりません。jQuery ?:(.tolowercase .replace text.match)URLが利用できない場合には動作しません。

// ==UserScript== 
// @name  twitter intent 
// @namespace covert 
// @description twitter intent popupwindow text replace 
// @include  https://twitter.com/intent/* 
// @version  1 
// @grant  none 
// @require  http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js 
// ==/UserScript== 



$('#status').each(function() { 
var text = $(this).text(); 
var n = text.indexOf('http'); 
var url = text.match(' http(s?):\/\/[^<\s]*'); 
text = text.replace(url[0],''); 
text = text.toLowerCase() 
.replace('climate change', '#climatechange') 
.replace('climate ', '#climate ') 
.replace('planet', '#planet') 
.replace('ocean', '#ocean') 
.replace('epa ', '#epa ') 
text = text.slice(0,n) + url[0] + text.slice(n); 
$(this).text(text); 
}); 

ここでは動作しているフィドルです。ただ、HTMLボックスにURLを削除し、すべての動作を停止するために開始されます: - https://jsfiddle.net/qvsasvp2/


このコードはから取られる:.tolowercase() only text except URL's?

+0

時間:

が更新フィドルを参照してください。あなたに理由を与えます* "仕事をやめ始めます" * – charlietfl

+0

あなたは何のことを言っていますか? –

+0

デモのhtmlコンテンツの@DanPhilip – charlietfl

答えて

1

単純な正規表現でラインに|| ''を追加:

これは、文字列に一致するURLがないかどうかを確認します(結果は偽である、つまりnull)、空文字列はurlに割り当てられます。スターター用ブラウザのコンソールにスローされたエラーを見て学ぶことhttps://jsfiddle.net/w7ocbhcd/1/

+0

私の答えを受け入れることを忘れないように助けてくれることを喜んで助けてください –

+0

私は奇妙な問題をたくさん取っていますhttps://jsfiddle.net/gu3jcqw4/ – computerguy

+0

あなたは精巧にできますか?どのような奇妙な問題?どのようなエラーメッセージですか?それは私のブラウザで正常に動作します –

関連する問題