تغيير Innerhtml من دوميل الكاكاو
-
12-09-2019 - |
سؤال
الهدف - ج، WebView
مرحبا، أحاول تغيير innerhtml من مؤشر دوم في Domdocument:
Domdocument * Mydom = [[StoryDisPlay Mainframe] Domdocument]؛
DomeLement * العنوان = [mydom getelementbyid: @ "العنوان"]؛ [العنوان setnodevalue: @ "الحجسا"]؛
لا شيء يبدو أنه يتغير عندما يتم تنفيذ الأسطر المذكورة أعلاه، هل هذه هي الطريقة الصحيحة لتحرير سمة innerhtml؟
شكرا، غارت هارتمان جينسن
المحلول
لماذا لا تستخدم فقط -setinnerhtml: الطريقة؟
نصائح أخرى
اكتشفت أن طريقة واحدة لتحقيق ذلك كانت لاستخدام JavaScript للعب مع DOM:
id *scriptObject= [storyDisplay windowScriptObject];
[scriptObject callWebScriptMethod:@"repleaceHeader" withArguments:[[NSArray alloc] initWithObjects:@"Whatever you want the header to be"]];
يحصل هذا القليل من التعليمات البرمجية على بيئة البرمجة النصية من WebView وينفذ وظيفة JavaScript بواسطة الاسم "ReplaceHeader" مع و مجموعة الوسيطة (في حالتي فقط سلسلة).
هذا يتطلب أن يكون لديك وظيفة JavaScript مع هذا الاسم، فإن جزء من مستند HTML الخاص بي يبدو وكأنه هذا:
<h1 id="heading">Welcome to Cookie</h1>
<script type="text/javascript">
function repleaceHeader(header) {
var heading = document.getElementById("heading");
heading.innerHTML = header;
}
</script>