PDA

View Full Version : سوال: بیرون کشیدن یک مقدار از تگ در فایل html جدا



hercool
یک شنبه 26 خرداد 1392, 20:01 عصر
سلام خدمت دوستان یه مشکل دارم
من می خوام مقدار یک تگ input رو از داخل یک فایل اچ تی ام ال بکشم بیرون
من جستجوی زیادی کردم راهکاری که بود این بود که یا از شی xmlhttprequest استفاده کنم یا از تگ iframe
من از این تگ استفاده کردم و فایل رو اپلود کردم و کد جاوا اسکریپت رو نوشتم تااز داخل تگ iframe مقدار رو بکشه بیرون اما نشد ممنون میشم راهنماییم کنید.



<!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script language="javascript">
document.write(document.getElementById('iframe.txb Inventories').value);
document.write(document.getElementById('txbInvento ries').value);
</script>
</head>
<body>
<iframe src="12.htm" height="900" width="1000">
</iframe>
<script>

document.write(document.iframe.txbInventories.valu e);
</script>

</body>
</html>

hakan648
سه شنبه 28 خرداد 1392, 10:58 صبح
سلام

index.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<iframe id="myIframe" src="iframe.html"></iframe>
<script type="text/javascript">
setTimeout(function() {
var iframe = document.getElementById("myIframe");
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var iframeTextboxValue = innerDoc.getElementById("iframe_textbox").value;

console.log(iframeTextboxValue);
}, 2000);
</script>
</body>
</html>

iframe.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<h1>This is my iFrame</h1>
<input type="text" id="iframe_textbox" value="some value!" />
</body>
</html>


در صفحه ی index.html کد مربوط رو بعد از 2 ثانیه اجرا میکنم، و این مهمه که کدتون در یک رویداد بجز لود صفحه بخواد مقادیر رو از iframe بخونه، چون ممکنه هنگام اجرای کد، iframe اصلا بارگزاری نشده باشه.
مورد دیگه ای هم که باید توجه داشته باشید اینه که این فایل ها باید از طریق یک وب سرور فراخوانی بشن و اگر به عنوان یک فایل سیستم بازشون کنید به مشکل خواهید خورد.

بیشتر :
Javascript - Get element from within an iFrame - Stack Overflow (http://stackoverflow.com/a/1088569)

hercool
سه شنبه 28 خرداد 1392, 17:28 عصر
ممنون هاکان جان لطف کردی
کد های خودت درست جواب میده اما زمانی که من تغییرات را اعمال می کنم کار نمی کنه
حتی زمان لوگ رو بیشتر می کنم
و روی ومپ سرور اجراش می کنم بازم جواب نمیده
از load در jquery استفاده کردم اما نشد
<!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="jquery-1.9.1.js"></script>
</head>

<body>

<b>Successful Response (should be blank):</b>
<div id="success"></div>
<script>
$("#success").load("12.htm");
$("div.input#txbOtherNotesAndAccountsReceivable1Old").val();
var allInputs = $("input#txbOtherNotesAndAccountsReceivable1Old").val();
$("#success").text(allInputs);
</script>
show new tag

<script>
$("#success").load("12.htm",['input:#txbOtherNotesAndAccountsReceivable1Old'],function(){
alert("The last 25 entries in the feed have been loaded");
});
$("div.input#txbOtherNotesAndAccountsReceivable1Old").val();

</script>

</body>
</html>

hakan648
سه شنبه 28 خرداد 1392, 21:18 عصر
میتونید از متد مخصوص load جیکوئری استفاده کنید که برای بارگزاری فایل های html نوشته شده.
در این متد میتونید سلکتور مورد نظرتون رو هم بگنجونید!

$('#result').load('test.html #container');

در کد بالا بعد از بارگزاری فایل test.html ، مقدار تگ #container از فایل test.html در تگ #result از فایل جاری کپی میشه.

بیشتر:
.load() | jQuery API Documentation (http://api.jquery.com/load/)

hercool
پنج شنبه 30 خرداد 1392, 19:52 عصر
هاکان جان ممنون
حالا من می خوام بر اساس ارایه یکی یکی ای دی ها رو بزارم تا لود بشه
ولی نمی تونم این کار رو بکنم
یعنی می خوام براساس اسامی ای دی هایی که در داخل یک ارایه دارم تگ ها رو بکشم بیرون از داخل فرم لود شدم
اما هر کاری کردم نشد کد ها رو میزارم ممنون میمش راهنماییم کنی
فایل اولیه:


<!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form>
<input name="x" type="text" id="s" value="10" />
<input name="y" type="text" id="y" value="15" />
<input name="z" type="text" id="z" value="20" />
<input type="file" name="upload" id="upload" />
</form>
</body>
</html>

حالا کد های خودم که نوشتم



<!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="../jquery-1.9.1.js"></script>
</head>

<body>
<p id="g">salam</p>

<b> edameh</b>
<button>Change colors</button>
<div></div>
<span></span>
<script>
var xid=["s","y","z"];
$( "button" ).click(function () {
$("div").load('ech.html');
$( "div:input" ).each(function ( index, domEle) {
// domEle == this
//$( domEle ).css( "backgroundColor", "yellow" );
if ( $(this).is( "#"+ xid[this] ) ) {
$( "span" ).val();
return false;
}
});
});
</script>
</body>
</html>

البته این کد ها هم هست اما بازم هیچکدوم جواب نمیدن درست
<script>
var xid=["s","y","z"];
var arr=[];
documwnt.each(xid,function(){
$("div").load("'ech.html' '#' + this");
document.write("arr[]");
});
</script>

hercool
شنبه 01 تیر 1392, 20:16 عصر
کسی نیست راهنماییم کنه
موندم

hakan648
یک شنبه 02 تیر 1392, 02:01 صبح
من هنوز متوجه نشدم که میخوای چیکار بکنی.
کامل توضیح بده که میخوای به چی برسی، شاید بتونم کمکی بکنم.

hercool
یک شنبه 02 تیر 1392, 13:00 عصر
من یکسری صفحه html دارم که داخلش فرمی هست که تعدادی input داره
حالا هر کدوم از این input ها یک id متفاوت داره بنابراین تمام این id ها رو می خوام بریزم داخل یک اریه و با یک حلقه یکی یکی این ای دی ها رو بدم و مقدار اون input ها رو بگیرم و بریزم داخل ارایه دومی

مشکل هم اینه که نمی تونم در تابع load اندیس بدم بهشتا یکی یکی جایگذاری کنه

hakan648
دوشنبه 03 تیر 1392, 12:36 عصر
$(function () {
$("#btn_checkotherhtml").click(function () {
$("#temp").load('iframe.html form', {}, function (data) {
var xid = ["s", "y", "z"];
var vals = [];

for (var i = 0; i < xid.length; i++) {
vals[i] = $("#temp #" + xid[i]);
}

console.log(vals);
});
});
});

hercool
دوشنبه 03 تیر 1392, 21:09 عصر
سلام هاکان جان ممنون
اما مشکلی دارم اونم اینه که فایل رو تنها لود می کنه و بر اساس ارایه و ای دی ها چک نمیکنه و فقط اونا رو بیاره بلکه کل فرم رو لود می کنه و در صورتی که فایل فرم های زیادی رو داشته باشه همه فایل رو لود می کنه و اصلا بقیه کد رو اجرا نمی کنه

hercool
دوشنبه 03 تیر 1392, 21:12 عصر
و توی ارایه vals تنها این مقدار رو میریزه
object Object],[object Object

hercool
دوشنبه 03 تیر 1392, 21:22 عصر
هاکان جان ممنون درستش کردم یه تیکه کوچیک کد می خواست واقعا ممنونم ازت
لطف بزرگی کردی