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:

if (v.match(/(.+)(.*)\.flv/)||v.match(/(.+)(.*)\.mp4/)||v.match(/(.+)(.*)\.mp3/)||v.match(/http:(.+)(.*)\.flv/) || v.match(/http:(.+)(.*)\.mp4/) || v.match(/http:(.+)(.*)\.mp3/)) {
    f.width.value = '328';
    f.height.value = '200';
    f.src.value = '/mediaplayer/player.swf?file=' + v;
    return 'flash';
}
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
if (v.match(/[^\/]+\.(flv|mp4|mp3)/)) {
  f.width.value = '328';  
  f.height.value = '200';  
  f.src.value = '/mediaplayer/player.swf?file=' + encodeURIComponent(v);  
  return 'flash';  
}
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
(function () {
  var f = {
        'width': {},
        'height': {},
        'src': {}
      },
      replace = function (v) {
        if (v.match(/[^\/]+\.(?:flv|mp4|mp3)/)) {
          f.width.value = '328';
          f.height.value = '200';
          f.src.value = '/mediaplayer/player.swf?file=' + encodeURIComponent(v);
          return 'flash';
        }
      };

    replace('http://domain.com/path/to/file/file.flv');
    console.log(f.src.value);
})()
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
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.