nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Re: Filename an SWF-Objekt in HTML-Seite übergeben ?

Von: Thomas 'PointedEars' Lahn (pointedears@web.de) [Profil]
Datum: 07.06.2008 19:25
Message-ID: <484AC48A.3020008@PointedEars.de>
Newsgroup: de.comp.lang.javascript
Lars Kampmann wrote:
> ich möchte viele Flashfilme (swf) dynamisch (ohne PHP) in eine
HTML-Seite
> einbinden, damit ich nicht für jeden Film eine HTML-Seite haben
muss.
> Also jeweils immer nur einen Film.
>
> Ich dachte daran, den Filenamen per Link zu übergeben, evtl. per
> Javascript weiterzureichen. Habe aber noch keine Lösung gefunden.

Du hast nicht (genügend) gesucht.

Soll es nicht ohne clientseitigen Script-Support funktionieren, genügt
schon etwas wie der folgende Quickhack.

foo.html:

...
<script type="text/javascript">
function isConvertibleToObject(o)
{
return !!o || /\b(boolean|number|string)\b/.test(typeof o);
}

function getFeature(o)
{
if (isConvertibleToObject(o))
{
for (var i = 1, len = arguments.length; i < len; i++)
{
var arg = arguments[i];
if (typeof o[arg] == "undefined"
|| (typeof o[arg] == "object" && o == null))
{
return null;
}
else
{
o = o[arg];
}
}
}

return o;
}

var _global = this;

var unesc = getFeature(_global, "decodeURIComponent")
|| getFeature(_global, "unescape")
|| function(s) { return s; };

function getQuery()
{
var q = getFeature(_global, "window", "location", "search")
|| getFeature(_global, "document", "URL");
if (q)
{
q = (q.match(/\?([^#]+)/) || ["", ""])[1];
if (q)
{
q = unesc(q);
}
}

return q;
}

function htmlSpecialChars(s)
{
return s.replace(
/[&"'<>]/g,
function(m) {
return "&#" + m.charCodeAt(0) + ";";
});
}

var url = getQuery();
if (url)
{
url = htmlSpecialChars(url);
document.write(
'<object data="' + url + '" ...>'
+ '  <param name="movie" value="' + url + '">'
+ '  ...'
+ '<\/object>');
}
</script>
...

Dabei sind die übrigen Methoden nur stabilisierendes Beiwerk; auf
getQuery()
und document.write() kommt es an.  Mit foo.html?bar.swf kannst Du dann
bar.swf einbinden.

> Ist Javascript die Lösung,

Clientseitig: Nein.  Es ist *eine* Lösung; natürlich nicht die
beste, da
Support nicht garantiert ist.

Serverseitig: warum nicht.

> gibt es irgendwo ein einfaches Beispiel

Ja.  Google ist Dein Freund. [psf 6.1]

> oder gibts vielleicht bessere andere Lösungen

SSI z.B.

> serverseitige Sprachen wie PHP sind nicht möglich
verfügbar).

Besorg Dir besseren Webspace; gibt's schon für ein Paar (sic!) EUR/Monat.


PointedEars
--
> hoehe=screen.height; breite=screen.width;
Was hat dies mit der Fenstergröße zu tun? Genauso kannst Du fragen:
"Wie groß ist Nachbars Garage?", um zu ermitteln, wie groß wohl
mein
Auto sein mag. (Georg Maaß in dcljs <ap315c$r2pon$2@ID-3551.news.dfncis.de>)

[ Auf dieses Posting antworten ]

Antworten