JavaScript 프레임에서 국가 이름 목록이 채워진 왼쪽 프레임이있는 웹 페이지에 2 개의 프레임이 있습니다. 각 국가는 주요 개체 내의 개체이기도하며 4 개의 이름/값 속성을 가지고 있습니다. 나는 몸의 온로드에 부착 된 다음과 같은 기능을 사용하고 있습니다 :firefox Javascript document.write (onclick) 참조 오류 정의되지 않은 함수
function populateList() {
var list = top.frames[0].document;
list.open()
list.write("<h2>Countries</h2><ul>");
for (name in euMem){
if(typeof name !== 'object'){
list.write('<li><a href=\"\" onclick=\"updateFrame(\'' + name + '\');\">' + name + '</a></li>');
}
}
list.write("</ul>");
list.close();
}
사용자가 국가 이름 중 하나를 클릭 할이이 기능을 실행하기위한 것입니다 왼쪽 :
function updateFrame(country) {
var infoFrame = top.frames[1].document;
infoFrame.open();
var size = Object.size(euMem[country]);
infoFrame.writeln("<h1>Information for " + country + "</h1>");
for(prop in euMem[country]){
infoFrame.writeln(prop + " : " + euMem[country][prop] + "<br>");
}
infoFrame.close();
}
에 보인다 Chrome에서 제대로 작동하지만 Firefox에서는 updateFrame이 정의되어 있지 않다는 참조 오류가 발생합니다. 내가 HTML로 직접 updateFrame을 하드 코딩 할 때 파이어 폭스에 막히지 않고 작동하지만 document.write로 작성되면 참조 오류가 발생합니다.
Firefox에서 작동하지 않는 이유는 무엇입니까?
편집 : 나는 할 수 있었다 파이어 폭스에서 작동하지 않습니다 위의
<html>
<head>
<title>InfoPane</title>
<script type="text/javascript">
function test(name){
alert(name);
}
function load(){
document.write("<button onclick='test('John Doe');'>Alert Me!</button>");
}
</script>
</head>
<body onload="load();">
</body>
</html>
...
: 여기 내가이의 가장 기본적인 버전을 테스트 쓴 간단한 스크립트입니다 기본 예제로 작동하는이 코드를 얻을 수 있지만, 위의 내 코드에 그것을 확장 할 수있는 기능을 얻을 :
<html>
<head>
<title>InfoPane</title>
<script type="text/javascript">
function test(){
alert(this.name);
}
function load(){
var btn = document.createElement('button');
btn.name = 'John Doe';
btn.onclick = test;
btn.innerHTML = 'Alert Me!';
document.body.appendChild(btn);
}
</script>
</head>
<body onload="load();">
</body>
</html>
1. 왜 프레임을 사용합니까? 2. 어떻게 스크립트를 삽입하고 어디에 있습니까? –
프레임을 사용해야하는 클래스 할당이므로 프레임을 사용하고 있습니다. 스크립트는 첫 번째 프레임의 HTML 파일에 포함됩니다. – user1721944