Dion Almaer зафигачил грисманки скрипт, который преобразует tinyurl ссылки в потоках twitter’а в их конечные точки. Ну т.е. чтоб видеть что за ссылка и куда она идет, потому как не всегда “LOLOLOLOL http://tinyurl.com/sdfsd” достойно внимания.
Ох и объяснил, надеюсь вы поняли. Схематично:

становится:

Если захотите поставить - то желательно отредактировать файл, заменив:
newtext = newtext.replace(originalurl, resulturl, “g”);
на:
newtext = newtext.replace(”href=\””+originalurl, “href=\””+resulturl, “g”);
newtext = newtext.replace(originalurl, resulturl.length > 30 ? resulturl.substr(0,30)+”…” : resulturl, “g”);
тогда оно не будет ломать дизайн.
А еще можно пофрендиться со мной.
Нашел файл - библиотеку функций, альтернатив php’шным на javascript’е. От элементарных вроде strtolower до адских вроде soundex:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| function soundex( str ) {
// http://kevin.vanzonneveld.net
// + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
// * example 1: soundex('Kevin');
// * returns 1: 'K150'
var i, j, l, r, p = isNaN(p) ? 4 : p > 10 ? 10 : p < 4 ? 4 : p,
m = {BFPV: 1, CGJKQSXZ: 2, DT: 3, L: 4, MN: 5, R: 6},
r = (s = str.toUpperCase().replace(/[^A-Z]/g, "").split("")).splice(0, 1);
for(i = -1, l = s.length; ++i < l;){
for(j in m){
if(j.indexOf(s[i]) + 1 && r[r.length-1] != m[j] && r.push(m[j])){
break;
}
}
}
return r.length > p && (r.length = p), r.join("") + (new Array(p - r.length + 1)).join("0");
} |
Полный список:
- addslashes
- array_chunk
- array_combine
- array_diff
- array_diff_assoc
- array_key_exists
- array_pop
- array_push
- array_search
- array_shift
- array_sum
- array_unique
- array_unshift
- base64_decode
- base64_encode
- basename
- checkdate
- chr
- count
- crc32
- date
- empty
- end
- explode
- function_exists
- htmlentities
- implode
- include
- include_once
- in_array
- is_array
- is_numeric
- levenshtein
- ltrim
- md5
- nl2br
- number_format
- ord
- printf
- rand
- reset
- rtrim
- soundex
- sprintf
- stripslashes
- strip_tags
- strlen
- strpos
- strrpos
- strtolower
- strtoupper
- str_pad
- str_repeat
- str_replace
- str_rot13
- trim
- ucfirst
- ucwords
- utf8_decode
- utf8_encode
- wordwrap
Я постоянно что-нибудь такое в гугле ищу, может и вам пригодится.
Тест: Насколько ты крут в яваскрипте? 50 вопросов, так что нужно хорошенько собраться, прежде чем начать.
Бывает читаю javascript.about.com, а там случаются интересные записи.
Так вот.
Что мы делаем когда нужно послать из яваскипта юзера, передав данные post’ом?
Мы создаем форму:
<form method=post id=form_id>
<input type=hidden name=…>
</form>
Назначаем значения ее элементам:
document.getElementById(’form_id’)….value = …;
и, когда пользователь решится, вызываем:
document.getElementById(’form_id’).submit();
Можн, конечно, передавать данные через HttpRequest, если пользователя нужно оставить на странице. Но если его нужно послать подальше, причем через POST Стивен Чапмэн юзает свою функцию, которая автоматизирует создание формы для сабмита
// querystring to POST JavaScript
// copyright 15th October 2007 by Stephen Chapman
// permission to use this Javascript on your web page is granted
// provided that all of the code in this script (including these
// comments) is used without any alteration
function toPost(getString)
{
var parms = getString.split('?');
var newF = document.createElement("form");
newF.action = parms[0];
newF.method = 'POST';
var parms = parms[1].split('&');
for (var i=0; i<parms.length; i++)
{
var pos = parms[i].indexOf('=');
if (pos > 0)
{
var key = parms[i].substring(0,pos);
var val = parms[i].substring(pos+1);
/*@cc_on @if (@_jscript)
var newH = document.createElement("<input name='"+key+"'>");
@else */
var newH = document.createElement("input");
newH.name = key; /* @end @*/
newH.type = 'hidden';
newH.value = val;
newF.appendChild(newH);
}
}
document.getElementsByTagName('body')[0].appendChild(newF);
newF.submit();
}
С ней можно делать так:
<a href=”http://felgall.com/htmlt59.php?parmone=i&parmtwo=j” onclick=”toPost(this.href); return false;”>go</a>