ugrás a tartalomhoz

Javascript wildcard

Tanul0 · 2010. Ápr. 24. (Szo), 14.43
Üdv!

Javascript-ben kéne egy kis segítség.

Mivel nem igazán értek a wildcard-hoz (sajnos) szeretném megoldani, hogy

http://valami.hu/akarmennyi/perjel/fajlnev.flv-re is működjön a scriptem. A /akarmi/akami/fajl.flv-re már működik, de ha domain is van benne sajnos nem.

A script:
  1. if (v.match(/(.+)(.*)\.flv/)||v.match(/(.+)(.*)\.mp4/)||v.match(/(.+)(.*)\.mp3/)||v.match(/http:(.+)(.*)\.flv/) || v.match(/http:(.+)(.*)\.mp4/) || v.match(/http:(.+)(.*)\.mp3/)) {  
  2.     f.width.value = '328';  
  3.     f.height.value = '200';  
  4.     f.src.value = '/mediaplayer/player.swf?file=' + v;  
  5.     return 'flash';  
  6. }  
Egyébként ez a tinymce media pluginja, abban szeretném elérni, hogy a saját flash lejátszómat alkalmazza az adott fájltípusokra.

Üdv!
 
1

Mit is akarsz?

Poetro · 2010. Ápr. 24. (Szo), 19.24
  1. if (v.match(/[^\/]+\.(flv|mp4|mp3)/)) {  
  2.   f.width.value = '328';    
  3.   f.height.value = '200';    
  4.   f.src.value = '/mediaplayer/player.swf?file=' + encodeURIComponent(v);    
  5.   return 'flash';    
  6. }  
2

Sajnos ez így nem

Tanul0 · 2010. Ápr. 24. (Szo), 20.57
Sajnos ez így nem működik.

Lényeg. TinyMCE szerkesztő media pluginjában a flashvideo/mp3/mp4 beszúrását szeretném, ha automatikusan beillesztené a flash playerembe (jw player). Ha a szerveren linkelek, tehát /path/to/file/file.flv, akkor működik és átírja egyből ( erre /mediaplayer/player.swf?file=/path/to/file/file.flv) a lejátszóhoz. Ha viszont nem a szerveren, hanem más szerverről szeretnék flv-t lejátszani, akkor nem írja át. Tehát a http://domain.com/path/to/file/file.flv-t nem írja át erre /mediaplayer/player.swf?file=http://domain.com/path/to/file/file.flv. A wildcard-al kell játszani, viszont sajnos én nem értek hozzá. Ez a része v.match(/(.+)(.*)\.mp4/) a http://-en elakad, viszon nekem szükségem lenne rá :(
3

Nekem működik

Poetro · 2010. Ápr. 25. (V), 03.27
  1. (function () {  
  2.   var f = {  
  3.         'width': {},  
  4.         'height': {},  
  5.         'src': {}  
  6.       },  
  7.       replace = function (v) {  
  8.         if (v.match(/[^\/]+\.(?:flv|mp4|mp3)/)) {  
  9.           f.width.value = '328';  
  10.           f.height.value = '200';  
  11.           f.src.value = '/mediaplayer/player.swf?file=' + encodeURIComponent(v);  
  12.           return 'flash';  
  13.         }  
  14.       };  
  15.   
  16.     replace('http://domain.com/path/to/file/file.flv');  
  17.     console.log(f.src.value);  
  18. })()  
Kimenet:
/mediaplayer/player.swf?file=http%3A%2F%2Fdomain.com%2Fpath%2Fto%2Ffile%2Ffile.flv
Ez számomra teljesen rendben levőnek tűnik, te mit kapsz a saját kódoddal?
Azt pedig hozzá kell tenni, hogy a Flash távoli domainről csak akkor tud adatot betülteni, ha az a crossdomain.xml-ben engedélyezve van a másik oldalon.
4

ha domain úgy néz ki, hogy

Tanul0 · 2010. Ápr. 25. (V), 12.11
ha domain úgy néz ki, hogy domain.hu akkor jó, viszont ha aldomain.domain.hu akkor már nem.
5

Igazából, azért van szükségem

Tanul0 · 2010. Ápr. 25. (V), 12.59
Igazából, azért van szükségem aldomain-re, mert a weblap két szerveren fut. Az egyik a statikus tartalmat szolgálja ki, a másik a többit. (Nem azért, mert nagy forgalmú oldalról van szó, hanem azért, mert van 2 szerver akkor miért ne.) Így ha a szerveren linkelem, tehát domain.hu akkor átírja, viszont ha static.domain.hu akkor sajnos már nem.
6

replace('http://static.domain

Poetro · 2010. Ápr. 26. (H), 18.49
  1. replace('http://static.domain.hu/path/to/file/file.flv');  
esetén
/mediaplayer/player.swf?file=http%3A%2F%2Fstatic.domain.hu%2Fpath%2Fto%2Ffile%2Ffile.flv
kapok, ami teljesen jó. És ne felejtsd el az előbbi megjegyzésem végét sem, ez okozhatja a problémát.