要するに、私はこのTypeErrorの意味を理解しようとしています: 'Window'で 'getComputedStyle'を実行できませんでした:パラメーター1は 'Element'タイプではありません。
http://www.wiki.org.il/index.php?title=new-page&veaction=edit
このエラーでは、匿名で新しいページを作成したり、Wikiを編集したりすることはできません。ただし、別のスキンを使用すると、エラーは消えます。
http://www.wiki.org.il/index.php/Main_Page?useskin=vector
Wikiは1.25alphaで実行されます。
これと同じエラーが表示されました。 jQueryセレクターを通常のJavaScriptに置き換えたときに、エラーが修正されました。
var this_id = $(this).attr('id');
交換:
getComputedStyle( $('#'+this_id)[0], "")
と:
getComputedStyle( document.getElementById(this_id), "")
私はAngularJS v1.5.8でng-include
a type="text/ng-template"
存在しませんでした。
<div ng-include="tab.content">...</div>
Ng-includeを使用する場合、そのディレクティブのデータが実際のページ/セクションを指していることを確認してください。それ以外の場合は、おそらく次のものが必要です。
<div>{{tab.content}}</div>
私の場合、ClassName
を使用していました。
getComputedStyle( document.getElementsByClassName(this_id)) //error
また、2番目の引数" "
なしでも機能します。
完全な実行コードは次のとおりです。
function changeFontSize(target) {
var minmax = document.getElementById("minmax");
var computedStyle = window.getComputedStyle
? getComputedStyle(minmax) // Standards
: minmax.currentStyle; // Old IE
var fontSize;
if (computedStyle) { // This will be true on nearly all browsers
fontSize = parseFloat(computedStyle && computedStyle.fontSize);
if (target == "sizePlus") {
if(fontSize<20){
fontSize += 5;
}
} else if (target == "sizeMinus") {
if(fontSize>15){
fontSize -= 5;
}
}
minmax.style.fontSize = fontSize + "px";
}
}
onclick= "changeFontSize(this.id)"
エラーメッセージは、getComputedStyle
がElement
タイプである必要があることを示しています。パラメーターのタイプが正しくないため、それを受け取ります。
最も一般的なケースは、引数として存在しない要素を渡そうとすることです。
my_element = document.querySelector(#non_existing_id);
要素がnull
になったので、言及されたエラーが発生します。
my_style = window.getComputedStyle(my_element);
常に要素を正しく取得できない場合は、たとえば、querySelector
が一致するものを見つけられなかった場合、次を使用して関数を終了できます。
if (my_element === null) return;
Angular6プロジェクトでも同じエラーが発生しました。これらの解決策はどれもうまくいかないようでした。問題はdropdown
として指定されたがドロップダウンオプションが含まれていない要素が原因であることが判明しました。以下のコードを見てください:
<span class="nav-link" id="navbarDropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
<i class="material-icons "
style="font-size: 2rem">notifications</i>
<span class="notification"></span>
<p>
<span class="d-lg-none d-md-block">Some Actions</span>
</p>
</span>
<div class="dropdown-menu dropdown-menu-left"
*ngIf="global.localStorageItem('isInSadHich')"
aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="#">You have 5 new tasks</a>
<a class="dropdown-item" href="#">You're now friend with Andrew</a>
<a class="dropdown-item" href="#">Another Notification</a>
<a class="dropdown-item" href="#">Another One</a>
</div>
コードの削除data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"
問題を解決しました。
私自身は、最初のスパン要素をクリックするたびに、スコープが親スパンに存在しなかったドロップダウンの子のスタイルを設定すると予想していたため、エラーをスローしたと思います。