জাভাস্ক্রিপ্টের সাথে iframe src পরিবর্তন করা হচ্ছে


98

<iframe src=... >যখন কেউ রেডিও বোতাম টিপায় তখন আমি একটি পরিবর্তন করার চেষ্টা করছি । কোনও কারণে আমার কোডটি সঠিকভাবে কাজ করছে না এবং কেন তা নির্ধারণ করতে আমার সমস্যা হচ্ছে। আমার যা আছে তা এখানে:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
  <title>Untitled 1</title>

  <script>
  function go(loc) {
    document.getElementById('calendar').src = loc;
  }
  </script>
</head>

<body>
  <iframe id="calendar" src="about:blank" width="1000" height="450" frameborder="0" scrolling="no"></iframe>

  <form method="post">
    <input name="calendarSelection" type="radio" onselect="go('http://calendar.zoho.com/embed/9a6054c98fd2ad4047021cff76fee38773c34a35234fa42d426b9510864356a68cabcad57cbbb1a0?title=Kevin_Calendar&type=1&l=en&tz=America/Los_Angeles&sh=[0,0]&v=1')" />Day
    <input name="calendarSelection" type="radio" onselect="go('http://calendar.zoho.com/embed/9a6054c98fd2ad4047021cff76fee38773c34a35234fa42d426b9510864356a68cabcad57cbbb1a0?title=Kevin_Calendar&type=1&l=en&tz=America/Los_Angeles&sh=[0,0]&v=1')" />Week
    <input name="calendarSelection" type="radio" onselect="go('http://calendar.zoho.com/embed/9a6054c98fd2ad4047021cff76fee38773c34a35234fa42d426b9510864356a68cabcad57cbbb1a0?title=Kevin_Calendar&type=1&l=en&tz=America/Los_Angeles&sh=[0,0]&v=1')" />Month
  </form>

</body>

</html>


@ পেপকা এই কারণেই এটি একটি মন্তব্য।
এমবিকিউ

@ এমবিকিউ না, আমি বোঝাতে চাইছি এই দৃশ্যে এটি একটি সত্যই খারাপ ধারণা। বাহিনীটি কোনও বাহ্যিক পরিষেবা থেকে কোড এম্বেড করছে বলে মনে হচ্ছে। ক্রস ডোমেন সুরক্ষার কারণে আপনি এজেএক্সকে প্রথম স্থানে ব্যবহার করতে পারবেন না, এবং এমনকি যদি আপনি এটি করতে পারেন, এইচটিএমএল থাকা এবং এটি একটি ডিআইভিতে রাখা কোনও কাজ করে না, কারণ এতে চিত্র এবং স্টাইল শীটের সম্পর্কিত আপেক্ষিক উল্লেখ থাকতে পারে এবং যেমন। আইফ্রেমস আসলে এখানে যাওয়ার জিনিসটি আমি ভাবি
পেক্কা

@ পেপকা আমি সম্মত; আমি সেই দূরবর্তী পরিষেবা অংশটি মিস করেছি। আমি মানুষকে বিভ্রান্ত না করার জন্য আমার মন্তব্য মুছে ফেলেছি।
এমবিকিউ

কোনও ব্রাউজারে উপরের কাজ কোডটি কেন ডোজ নয় ????
হারিক্স

উত্তর:


127

এই ক্ষেত্রে এটি সম্ভবত কারণ আপনি এখানে ভুল বন্ধনী ব্যবহার করছেন:

document.getElementById['calendar'].src = loc;

হতে হবে

document.getElementById('calendar').src = loc;

11
@ সিনজুও onselectএখানে ব্যবহারের সঠিক বৈশিষ্ট্য নয়। আপনি ব্যবহার করতে চাইতে পারেন onclick- খেয়াল করুন যদিও ব্যবহারকারী তাদের কীবোর্ড ব্যবহার করেন তবে তা জ্বলে উঠবে না
পেক্কা

এটাই ছিল। ধন্যবাদ আমি
বাছাইয়ের

@ সিনজুও হ্যাঁ, এটি ভাল ধারণা। আমি মনে করি যদিও এর onchangeজন্য আপনাকে কিছু প্রকারের ব্যবহার করতে হবে।
পেক্কা

4
"অনক্লিক" কীবোর্ডের জন্য কাজ করে। কোনও "অনসलेक्ट" ইভেন্ট নেই।
হারুন ডি

@ অ্যারনতে একটি অ-মানক অনসलेक्ट ইভেন্ট রয়েছে, তবে এটি পাঠ্য নির্বাচনের জন্য। যদি onclickকোনও রেডিও বোতাম চালু / বন্ধ করার পক্ষে কাজ করে তবে সবকিছুই সমাধান হয়ে যায়, দুর্দান্ত!
পেক্কা

67

হতে পারে এটি সহায়ক হতে পারে ... এটি সরল এইচটিএমএল - জাভাস্ক্রিপ্ট নেই:

<p>Click on link bellow to change iframe content:</p>
<a href="http://www.bing.com" target="search_iframe">Bing</a> -
<a href="http://en.wikipedia.org" target="search_iframe">Wikipedia</a> -
<a href="http://google.com" target="search_iframe">Google</a> (not allowed in inframe)

<iframe src="http://en.wikipedia.org" width="100%" height="100%" name="search_iframe"></iframe>

উপায় দ্বারা কিছু সাইটগুলি আপনাকে সেগুলিকে আইফ্রেমে খুলতে দেয় না (সুরক্ষার কারণে - ক্লিক জ্যাকিং)


4
দয়া করে ব্যাখ্যা করতে পারেন কেন " google.com " ইনফ্র্যামে অনুমতি দেওয়া হয়নি এবং এটি উপলব্ধ করার জন্য কোনও পরামর্শ (অবশ্যই iframe নয়, তবে একই রকম)? অনেক প্রশংসা।
ফুয়েভো

4
@ হিকারু ৮৯ এটি একটি দেরি করা উত্তর ... আপনি এটি কেবল "তৈরি" করতে পারবেন না। ইফ্রিমসে উদ্দেশ্য হিসাবে এটি অনুমোদিত নয়, গুগল তাদের নিজস্ব চুক্তিতে বহু কারণে এটি করে।
মিস্টার স্যারকোড


9

onselectহতে হবে onclick। এটি কীবোর্ড ব্যবহারকারীদের জন্য কাজ করবে।

আমি <label>ক্লিক করতে আরও সহজ করতে "দিন", "মাস" এবং "বছর" এর পাঠ্যে ট্যাগ যুক্ত করার পরামর্শ দেব । উদাহরণ কোড:

<input id="day" name="calendarSelection" type="radio" onclick="go('http://calendar.zoho.com/embed/9a6054c98fd2ad4047021cff76fee38773c34a35234fa42d426b9510864356a68cabcad57cbbb1a0?title=Kevin_Calendar&type=1&l=en&tz=America/Los_Angeles&sh=[0,0]&v=1')"/><label for="day">Day</label>

আমি গুণাবলী onclickএবং মানের মধ্যে ফাঁকা স্থানগুলি সরিয়ে ফেলারও সুপারিশ করব , যদিও এটি ব্রাউজারগুলি দ্বারা পার্স করা যায়:

<input name="calendarSelection" type="radio" onclick = "go('http://calendar.zoho.com/embed/9a6054c98fd2ad4047021cff76fee38773c34a35234fa42d426b9510864356a68cabcad57cbbb1a0?title=Kevin_Calendar&type=1&l=en&tz=America/Los_Angeles&sh=[0,0]&v=1')"/>Day

হতে হবে:

<input name="calendarSelection" type="radio" onclick="go('http://calendar.zoho.com/embed/9a6054c98fd2ad4047021cff76fee38773c34a35234fa42d426b9510864356a68cabcad57cbbb1a0?title=Kevin_Calendar&type=1&l=en&tz=America/Los_Angeles&sh=[0,0]&v=1')"/>Day

4
@ ধীরে ধীরে - আপনার ডাউনটা আমি বুঝতে পারি না। মূল সমস্যাটি ফাঁকা স্থান নয়, যা আমি বলেছিলাম যে এটি পরিবর্তন করা উচিত । সমস্যাটি হ'ল অনলেক্টটি অনক্লিক হওয়া উচিত। এছাড়াও খেয়াল করুন যে পেকার অন্য উত্তর সমস্যার সমাধান করে না। আমি আমার উত্তরটি আরও পরিষ্কার করার জন্য পুনরায় অর্ডার করব।
হারুন ডি

ডাউনটোটটি আমি সরিয়েছি কারণ আপনার নতুন সম্পাদনা আগের চেয়ে পরিষ্কার is
স্পষ্টত

6

এটিও কার্যকর srcহবে , যদিও ইচ্ছাটি অক্ষত থাকবে:

document.getElementById("myIFrame").contentWindow.document.location.href="http://myLink.com";

4
আইফ্রেমের পৃষ্ঠাটি যখন অন্য কোনও ডোমেনে থাকে তখন এটি কাজ করবে না।
ফ্রেডেরিক লাইটেনবার্গার

2

এই আমার আপডেট কোড। এটি দুর্দান্ত কাজ করে এবং এটি আপনাকে সহায়তা করতে পারে।

<head>
  <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
  <title>Untitled 1</title>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
  <script type="text/javascript">
  function go(loc) {
    document.getElementById('calendar').src = loc;
  }
  </script>
</head>

<body>
  <iframe id="calendar" src="about:blank" width="1000" height="450" frameborder="0" scrolling="no"></iframe>

  <form method="post">
    <input name="calendarSelection" type="radio" onclick="go('http://calendar.zoho.com/embed/9a6054c98fd2ad4047021cff76fee38773c34a35234fa42d426b9510864356a68cabcad57cbbb1a0?title=Kevin_Calendar&type=1&l=en&tz=America/Los_Angeles&sh=[0,0]&v=1')" />Day
    <input name="calendarSelection" type="radio" onclick="go('http://calendar.zoho.com/embed/9a6054c98fd2ad4047021cff76fee38773c34a35234fa42d426b9510864356a68cabcad57cbbb1a0?title=Kevin_Calendar&type=1&l=en&tz=America/Los_Angeles&sh=[0,0]&v=1')" />Week
    <input name="calendarSelection" type="radio" onclick="go('http://calendar.zoho.com/embed/9a6054c98fd2ad4047021cff76fee38773c34a35234fa42d426b9510864356a68cabcad57cbbb1a0?title=Kevin_Calendar&type=1&l=en&tz=America/Los_Angeles&sh=[0,0]&v=1')" />Month
  </form>

</body>

</html>

0

পরিবর্তন onselectকরার জন্য onchangeইনপুট এবং ব্যবহারে

calendar.src = loc


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.