0

開発中のオープンWebフォントをテストするために、非常に単純でわかりやすいブックマークレットを作成しました。Chromeでは魅力のように機能しますが、Firefoxでは失敗します。クロスブラウザで機能させるためのヒント(私は本当のJS初心者で、主にコピーして貼り付けてから、機能するように祈っています)。コードは次のとおりです。

javascript:var%20addFont%3Ddocument.createElement(%22style%22)%3BaddFont.innerText%3D%22%40import%20url(%27https://dl.dropbox.com/u/16808833/webfontkit-20120729-105013/stylesheet.css%27)%3B%20*%7Bfont-family:%20%27OpenfontRegular%27!important%3Bfont-weight:%20normal!important%3B%7D%22%3Bdocument.body.appendChild(addFont)%3B

または、より読みやすい形式で:

javascript:
var addFont=document.createElement('style');
addFont.innerText="
  @import url('https://dl.dropbox.com/u/16808833/webfontkit-20120729-105013/stylesheet.css');
  *{
    font-family: 'OpenfontRegular'!important;
    font-weight: normal!important;
  }";
document.body.appendChild(addFont);
4

2 に答える 2

0

FFはinnerTextここで文句を言います。innerHTML代わりに使用してみてください

編集1

それについてのいくつかのより多くの情報-あなたにとって最もうまくいくものを選んでください!「innerText」はIEでは機能しますが、Firefoxでは機能しません

編集2

私はこれに苦労してきましたが、私には意味がありません...それで、結果をもたらす可能性のあるいくつかのルートがあります:

  1. https://dl.dropbox.com/...スタイルシートのフォントファイル(例)にフルパスを追加してみてください
  2. importを使用する代わりに、次のように2つの要素を追加してみてください。

var addLink = document.createElement('link');
addLink.rel = "stylesheet";
addLink.type = "text/css";
addLink.href = "https://dl.dropbox.com/u/16808833/webfontkit-20120729-105013/stylesheet.css";
document.head.appendChild(addLink);

var addFont=document.createElement('style');
addFont.innerHTML="* {   font-family: 'OpenfontRegular' !important;    font-weight: normal!important;  }";
document.body.appendChild(addFont);

これらのどちらも実際にはうまくいきませんでしたが、試す価値があるかもしれません。私がとても混乱している理由は、これがgooglefontsの追加方法だからです。そして彼らはFirefoxで完璧に動作します!

于 2012-08-01T14:03:49.243 に答える
0

Firefox では @font-face ファイルのリモート呼び出しが許可されていないため、Base64 エンコードを使用してフォント情報を CSS ファイルに埋め込むことでこれを解決しました。これは FontSquirrel @font-face ジェネレーターで提供されるオプションで、ブックマークレットがフォントをインポートできるようにします。クロスブラウザで動作するブックマークレットのコードは次のとおりです。

javascript:%20newSS%20=%20document.createElement('link');%20newSS.rel%20=%20'stylesheet';%20newSS.href%20=%20'http://dl.dropbox.com/u/2040562/beta0.1/bookmarklet.css';%20document.head.appendChild(newSS);%20void%200

また:

javascript:
newSS = document.createElement('link');
newSS.rel = 'stylesheet'; newSS.href = 'http://dl.dropbox.com/u/2040562/beta0.1/bookmarklet.css';
document.head.appendChild(newSS);
void 0
于 2012-08-01T15:21:24.433 に答える